Stappen plan
In de router.php
$route->get('items-show/{id}', 'controllers/items-show.php');
De url http://localhost/item/4 zal dan voor id=4 invullen. Omdat de method 'get' wordt gebruikt is in de controller $request->id beschikbaar.
In controller items-show.php
<?php //validate id $request->validate([ 'id' => 'required' ]); //initialiseren van database class $db = new Database(); //view met item teruggegeven view('items-show', [ 'item' => $db->query("SELECT * FROM items WHERE id = :id", [ "id" => $request->id ])->fetch() ]);
In de view items-show.view.php
<?php view("parts/header", ['title' => 'item ' . $item['naam']]); view("parts/navigatie-menu"); ?> <h1 class="text-3xl my-4">Item <?= $item['naam'] ?></h1> <p class="my-4">Elke veld van 'item' kan hier nu worden gebruikt<br> id: <?= $item['id'] ?><br> naam: <?= $item['naam'] ?><br> beschrijving: <?= $item['beschrijving'] ?><br> prijs: <?= $item['prijs']; ?><br> </p> <?php view("parts/footer");
Testen van je code kan met http://localhost/items-show/1
Stappen plan
In de router.php
$route->get('items', 'controllers/items.php');
In de controller items.php
<?php //initialiseren van database class $db = new Database(); //view met item teruggegeven view('items', [ 'items' => $db->query("SELECT * FROM items ORDER BY naam")->fetchAll() ]);
In de view items.view.php
<?php view("parts/header", ['title' => 'items']); view("parts/navigatie-menu"); ?> <h1 class="text-3xl my-4">Items</h1> <p class="my-2">Hieronder een lijst met alle items</p><br> <ul class="ml-4"> <!-- loop door alle items heen --> <?php foreach ($items as $item) : ?> <li><?= $item['id'] ?> - <?= $item['naam'] ?> - <?= $item['beschrijving'] ?> - <?= $item['prijs'] ?> - Link naar item: <a href="/items-show/<?= $item['id'] ?>" class="text-indigo-600"> <?= $item['naam'] ?> </a> </li> <?php endforeach; ?> </ul> <?php view("parts/footer");
Testen van code: http://localhost/items