Opdracht ... tonen van posts

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

 

Opgave I2.1 - Controller

 

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

/app/controlleres/posts.php

 

Opgave I2.2 - View

 

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:

/app/views/posts.view.php

 

Opgave I2.3 - Route

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');
Verklaring
$route->get  Er wordt verstuurd d.m.v. get
'posts' Er wordt gekeken of het verzoek http://localhost/posts is
'controllers/posts.php' Je wordt doorgestuurd naar dit bestand
 
Als het goed is kan je nu de posts pagina bezoeken dmv. http://localhost/posts
 
Uitwerking:
app/router.php
 

Opgave I2.4 - Menu

Pas de view app/views/parts/navigatie-menu.view.php aan met een link naar 'posts'
<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>
In bovenstaande code is vooral de href="/posts" belangrijk. Dit is de verwijzing naar de juiste pagina
 
Uitwerking:
/app/views/parts/menu.view.php