We gaan in deze opdracht een nieuwe pagina aanmaken waarop alle posts te zien zijn. Maak daarvoor twee nieuwe bestanden aan:
- app/controller/posts.php
- app/views/posts.view.php
In de view willen we nu alle posts gaan tonen. Daarvoor hebben we een loop nodig die door alle posts heen kan gaan. Je zou hiervoor een foreach loop kunnen gebruiken
- roep de database class aan en zet dit in variabele $db
- Maak een query die alle posts ophaalt en zet dit in $result, ipv fetch() gebruiken we nu fetchAll() omdat dit meerdere records betreft.
- we roepen de view posts aan en geven $result mee aan de view.
* Je mag de cheatSheet gebruiken (ook bij de toets). Deze staat ook in je /webroot
Uitwerking:
In de view:
Gebruik een foreach loop om door het resultaat te lopen bv
<?php foreach ($posts as $post): ?> <!-- hier komt de code voor het weergeven van een post --> <?php endforeach; ?>
Je kan home.view.php als basis gebruik voor dit bestand. Waarschijnlijk kom je er nog niet helemaal zelf uit. Zeker niet erg, bij het antwoord kan je altijd even afkijken.De opmaak is hierbij nu nog niet belangrijk. Maar als je het leuk vindt, mag je er wat aandacht aan besteden.
Uitwerking:
Nu moeten we alleen nog een route maken om de posts te kunnen zien. En een linkje in het menu.
Daarvoor openen we de router.php en voegen de route naar "posts" toe.
app/router.php
$route->get('posts','controllers/posts.php');
posts is<a href="/posts" class="<?= isUri("posts") ? 'underline ' : '' ?>text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md font-medium">Posts</a>
href="/posts" belangrijk. Dit is de verwijzing naar de juiste pagina