## Tonen

## Tonen van één item

Stappen plan

- Maak een route in router.php
- Maak een bestand controllers/items-show.php
- Maak een bestand views/items-show.view.php

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

- gegevens ophalen uit de database
- gegevens meegeven aan view

    <?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

- Maak een route in router.php
- Maak een bestand controllers/items-index.php
- Maak een bestand views/items-index.view.php

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