Er zijn twee vormen van validatie:
Let op deze validatie heeft twee grote nadelen:
Kwetsbaarheid voor manipulatie: Client-side validatie vindt plaats op de computer van de gebruiker, wat betekent dat kwaadwillende gebruikers de validatieregels gemakkelijk kunnen omzeilen of uitschakelen door de client-side code aan te passen of uit te schakelen. Dit maakt het onbetrouwbaar voor het beveiligen van gevoelige gegevens of kritieke processen.
Browserafhankelijkheid: Client-side validatie kan verschillen tussen browsers.
Maar deze validatie is zeer eenvoudig toe te passen dus wel wenselijk om als extra beveiliging te gebruiken.
Hieronder een paar voorbeelden hoe te gebruiken
<input type="text" name="title" placeholder="Titel" required>
<input type="email" name="email" placeholder="email" required>
post-store.php. Deze gaan we hieronder aanpassen voor validatie$request object gebruiken. Deze is altijd beschikbaar en bevat een validate methode. Deze methode wil een array als input met als key het verstuurde veld en als value de validatie regel die toegepast moet worden.$request->validate([ 'title' => 'required', 'content' => 'required' ]);
Indien de validatie mislukt zal de gebruiker terug worden gestuurd naar de pagina waar hij/zij vandaan kwam. Op de pagina is dan de methode errors() beschikbaar om de eventueel validatie fouten te tonen.
Stel in ons voorbeeld van post-store.php dat content leeg zou zijn. Dan worden we teruggestuurd naar de pagina post-create.Op deze pagina willen we graag de foutmelding tonen. Bijvoorbeeld in het rood onder het input veld.
<textarea name="content" placeholder="Content..." class="border-1 rounded-md py-1 px-2"></textarea> <?php if (errors('content')): ?> <p class="text-red-500 text-sm my-2"><?= errors('content') ?></p> <?php endif; ?> <br>
Indien er een error op het veld content is dan zal in het rood de error boodschap verschijnen.

Uiteraard kunnen we hetzelfde toevoegen bij het veld title.
Je ziet dat het veld title wat misschien wel al gevuld was leeg terugkomt na een validatie fout. Dit is niet wenselijk. De gebruiker moet dan door één foutje alles opnieuw invoeren. Om dit te voorkomen kan de helper functie old() gebruikt worden. Dit geeft de waarde weer die was ingevuld voor het versturen.
<form action="/posts-store" method="post"> <?= csrf() ?> <input type="text" name="title" placeholder="Titel" value="<?= old('title') ?>" class="border-1 rounded-md py-1 px-2" required> <?php if (errors('title')): ?> <p class="text-red-500 text-sm my-2"><?= errors('title') ?></p> <?php endif; ?> <br> <textarea name="content" placeholder="Content..." class="border-1 rounded-md py-1 px-2"><?= old('content') ?></textarea> <?php if (errors('content')): ?> <p class="text-red-500 text-sm my-2"><?= errors('content') ?></p> <?php endif; ?> <br> <input type="submit" value="Opslaan" class="border-1 rounded-md px-2 py-1 hover:bg-gray-100 cursor-pointer"> </form>
Voeg de error teksten toe (als er een error is) aan de view post-edit.view.php en aan de post-create.view.php. Zoals in het voorbeeld hierboven.
Gebruik de functie old( ) om de verstuurde waarde te tonen. Gebruik hierbij twee parameters. Als eerste de meegestuurde waarde, en als tweede de waarde uit de database, bv:
old('content', $post['content'])
Uitwerking