Een post toevoegen - CREATE

Opgave J3.1 - Routes

In onderstaande opdracht gaan we een nieuwe 'post' aan onze database toevoegen.

De flow gaat er als volgt uitzien:

Elke 'post' heeft een title, content en user_id. Omdat user_id een verplicht veld is en we inloggen nog niet hebben behandeld voeren we tijdelijk voor user_id=63 in. Je mag natuurlijk ook een andere user_id gebruiken. Maar zorg er wel voor dat deze in de database bestaat.

dit kan in jou database anders zijn, kijk hiervoor in de users tabel

Om dit te laten werken hebben we twee nieuwe route's nodig.

 

Voeg onderstaande routes toe aan app/router.php

$route->get('posts-create', "views/posts-create.view.php");
$route->post('posts-store', "controllers/posts-store.php");
 
Uitwerking:
router.php
 

Opgave J3.2 - View posts-create

Maak een bestand /app/views/posts-create.view.php

Copy-paste de inhoud van een andere pagina view. Om als basis te gebruiken.

Voeg in de view een formulier toe om een post in te voeren

Als class voor het input veld en de textarea kan gebruik worden gemaakt van

class="border-1 rounded-md py-1 px-2"

Uitwerking

/app/views/posts-create.view.php

 

Opgave J3.3 - Controller posts-store.php

 

Maak een nieuw bestand controller/posts-store.php

 

Uitwerking

/app/controllers/posts-store.php

 

Opgave J3.4 - Link naar create

Om post toe te voegen moeten er nog een link worden toegevoegd op de posts pagina. views/posts.view.php

...
<div class="sm:mx-10">
    <h1 class="text-3xl my-4">Posts</h1>
    <a href="/posts-create" class="text-indigo-600 hover:text-indigo-400">Nieuwe post</a><br>
    <form action="/posts" method="get">
...

Dit is de link naar de /posts-create

<a href="/posts-create" class="text-indigo-600 hover:text-indigo-400">Nieuwe post</a><br>

 

/app/views/posts.view.php