
In onderstaande opdracht gaan we een nieuwe 'post' aan onze database toevoegen.
De flow gaat er als volgt uitzien:
action="/posts-store" hier wordt het formulier naar toegestuurd.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
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
name="title"name="content"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
Maak een nieuw bestand controller/posts-store.php
$request->validate([ 'title' => 'required', 'content' => 'required' ]);
->fetch() nodigredirect("/posts");
Uitwerking
/app/controllers/posts-store.php
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>