Skip to main content

Form

Via een form gaan we een nieuwe link aanmaken. We gaan dus onze C van CRUD maken.

Laten we eerst een eenvoudige link maken onderaan de pagina die we in de vorige les hebben gemaakt. Open de links.blade.php file en zet de volgende link onder de tabel die je in de vorige les heb gemaakt.

<a href="/newlink"> New </a>

Uiteindelijk maken we hier een menu van maar dat doen we later.

Maak een nieuwe template file en noem deze newlink.blade.php.

Opdracht 1

Maak een route in de routes/web.php file en verwijs naar de newlink.blade.php op dezelfde manier als we dat bij de welcome pagina hebben gedaan.

Plaats een eenvoudige echo "test"; in de newlink.blade.php en test of de nieuwe routering goed werkt.

Form

in de newlink.blade.php flie maken we nu een form.

<form action="/submitlink" method="post">
@csrf <!-- {{ csrf_field() }} -->
Title <input type="text" class="form-control" id="title" name="title" placeholder="Title"><br>
URL <input type="text" class="form-control" id="url" name="url" placeholder="URL"><br>
Description <textarea class="form-control" id="description" name="description" placeholder="description"></textarea><br>
<button type="submit" class="btn btn-default">Submit</button>
</form>

Opdracht 2

Zet het form in een nette tabel; maak 3 regels en twee kolommen.

Create New

Als het form wordt ge-submit dat moet er een nieuw record komen. We moeten eerst zorgen voor de juiste routering. Het form roept namelijk /submitlink aan en via de routering kunnen we aangeven wat er dan moet gebeuren.

De routering definiƫren we als volgt:

Route::post('/submitlink', function(Request $request) {

Deze routering 'vangt' de /submitlink op en roept de funtie aan met als parameter de variabelen die zijn gepost.

Nu maken we een nieuwe link, zetten de waarden en slaan die op.

Deze code hoort eingelijk niet in de routering file, althans het is netter om deze code ergens anders te plaatsen maar dat doen we later. We bouwen deze applicatie stapje-voor-stapje op.

Aan het eind gaan we terug naar de /links pagina met:

return redirect('/links');

Test de code en maak een paar nieuwe links aan. Let op dat de input nog niet wordt gevalideerd (op bijvoorbeeld maximaal aantal characters). Ook dat doen we later.

--