Skip to main content

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

  1. Een schermafdruk van je browser waarmee je de inhoud van je (winkel)mandje laat zien. Zorg ook dat de URL zichtbaar is.

--