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.
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.
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<?php dd($items); ?>
</body>
</html>
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
- Een schermafdruk van je browser waarmee je de inhoud van je (winkel)mandje laat zien. Zorg ook dat de URL zichtbaar is.
--