# Mandje maken (draft) ### Inleiding We gaan ons boodschappenmandje maken. De koppeling maken we later. We maken eerst net zoals we onze product controller en view hebben gemaakt in Laravel L1 een *mandje*. ### Stappen Weet je nog welke stappen we moeten uitvoeren? #### Stap 1 Migration ``` php artisan make:migration create_basket_table --create=basket ``` Dit commando maakt een file. Deze staat in `database/migrations/` Open de net gemaakte file en plaats deze code. ```PHP public function up() { Schema::create('basket', function (Blueprint $table) { $table->increments('id'); $table->integer('product_id'); $table->integer('number'); $table->timestamps(); }); } ``` We hebben in het mandje (=basket) een productnummer staan. Deze verwijst naar de product-tabel en is de *Foreign Key* (FK). We doen even alsof we maar één gebruiker hebben. In werkelijkheid is dat anders en heeft een mandje ook een username (zeg maar een koppeling naar de geregistreerde gebruiker). Maar we kunnen niet alles tegelijk maken dus we beginnen eenvoudig en doen even net alsof er maar één gebruiker is. Met het commando ``` php artisan migrate ``` Maken we de tabel aan. Controller dit! #### Stap 2 Model Nu maken we een Model aan. ``` php artisan make:model Basket ``` 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. ```PHP class Product extends Model { protected $table = 'basket'; use HasFactory; } ``` #### Stap 3 Controller We maken de controller aan met: ``` php artisan make:controller BasketController ``` En in de controller zetten we de volgende method/function ``` public function read() { $items = \App\Models\Basket::all(); return view('basket-read', ['items' => $items]); } ``` #### Stap 4 View We maken in de views folder een nieuw bestand basket-read.blade.php ```PHP ``` #### Stap 5 Route ### Opdracht Plaats via phpmyadmin minimaal twee artikelen in je mandje. Zorg ervoor dat de foreign key verwijst naar artikelen in de product tabel. Zet bij amount 1 en 2 neer. Maak de view af en laat de inhoud van je mandje dat je net in de database hebt gezet zien. ### Inleveren 1. Een schermafdruk van je browser waarmee je de inhoud van je (winkel)mandje laat zien. Zorg ook dat de URL zichtbaar is. \--