Skip to main content

Models

Model

Een model in de communicatie tussen je Database en je Controller. Een model is verantwoordelijk voor het uitvoeren van de taken die de Controller vraagt. Bijvoorbeeld:

  • Ik wil graag alle rijen ontvangen uit het users tabel
  • Ik wil graag een nieuwe rij aanmaken in het users tabel

Kort gezegd is je Model dus de laag tussen je Controller en de Database.

Hoe maak ik een model?

Bij het installeren van Laravel is er al een Model aanwezig, dit is het User model. Deze wordt standaard gebruikt om gebruikers te beheren in Laravel. Naast het standaard Model kunnen we ook een eigen model aanmaken om dit later te kunnen gebruiken. Dit doe je als volgt:

Nadat je een model hebt aangemaakt kun je dit vinden in de map app/Models

In het model hoeven we alleen maar de tabelnaam te specificeren.

class Product extends Model

{
    protected $table = 'product';
    use HasFactory;
}

Regel 4 uit dit voorbeeld voegen we toe aan het model app/Models/Product.php en we maken een link naar de tabel.

In web.php zetten we de volgende route.

Route::get('/products', function () {
	$products = \App\Models\Product::all();
    foreach($products as $product) {
        echo "<h3>";
        echo $product['name'];
        echo "</h3>";
        echo $product['description'];
        echo "<br><br>";
    }
});

Dit is een route /products De route verwijst niet naar een Controller of naar een View. Dat doen we in de volgende stap. We zetten nu tijdelijk alle code in de route zelf.

In de code worden alle producten ingelezen uit de database. Daarna worden in een loop van elk product de name en de description afgedrukt.

Als we nu deze nieuwe route uitproberen dan zien we het bijvoorbeeld het volgende (in dit voorbeeld is de database gevuld met computermuizen).

image-1666303805958.png

Inleveren

  1. Een schermafdruk van de browser waarin je de URL kan zien en waarin je jouw producten laat zien (zoals bijvoorbeeld in het voorbeeld hierboven).
  2. Jouw web.php

--