Tonen

Tonen van één item

Stappen plan

In de router.php

$route->get('items/{id}','controllers/item-show.php');

De url http://localhost/item/4 zal dan voor id=4 invullen. Omdat de method 'get' wordt gebruikt is in de controller $_GET['id'] beschikbaar.

In controller items-show.php

<?php
//initialiseren van database class
$db = new Database();

//view met item teruggegeven
view('items-show', [
    'item' => $db->query("SELECT * FROM items WHERE id=?", [$_GET['id']])->fetch()
]);

In de view items-show.view.php

Gebruik htmlspecialchars(...) om ook speciale teksens als quotes etc te laten werken

<?php
view("parts/header", ['title' => 'item ' . $item['id']]);
view("parts/navigatie-menu");
?>
    <h1 class="text-3xl my-4">Item <?= htmlspecialchars($item['naam']) ?></h1>

    <p class="my-4">Elke veld van 'item' kan hier nu worden gebruikt<br>
        id: <?= $item['id'] ?><br>
        naam: <?= htmlspecialchars($item['naam']) ?><br>
        beschrijving: <?= htmlspecialchars($item['beschrijving']) ?><br>
        prijs: <?= $item['prijs']; ?><br>
    </p>

<?php
view("parts/footer");

Testen van je code kan met http://localhost/items/1

 

Tonen van meerdere items

Stappen plan

In de router.php

$route->get('items', 'controllers/items-index.php');

In de controller items-index.php

<?php
//initialiseren van database class
$db = new Database();

//view met item teruggegeven
view('items-index', [
    'items' => $db->query("SELECT * FROM items")->fetchAll()
]);

In de view items-index.view.php

Gebruik htmlspecialchars(...) om ook speciale teksens als quotes etc te laten werken

<?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'] ?> -
                <?= htmlspecialchars($item['naam']) ?> -
                <?= htmlspecialchars($item['beschrijving']) ?> -
                <?= $item['prijs'] ?> -
                Link naar item:
                <a href="/items/<?= $item['id'] ?>" class="text-indigo-600">
                    <?= $item['naam'] ?>
                </a>
            </li>
        <?php endforeach; ?>
    </ul>

<?php
view("parts/footer");

Testen van code: http://localhost/items