Qu’est-ce que la validation
La validation consiste à vérifier que les données envoyées par un utilisateur satisfont un format et des conditions attendues. Laravel propose une validation simple et puissante via la méthodevalidate de l’objet de requête ou des form requests dédiés.
Validation dans le contrôleur
$request->validate()
L’appel à $request->validate() dans une méthode de contrôleur est la méthode la plus simple.
En cas d’échec, Laravel redirige automatiquement vers l’écran précédent et stocke les erreurs en session.
Déclaration des routes :
validate un tableau : nom du champ en clé, règles en valeur.
Séparez les règles avec | ou passez un tableau.
Règles principales
Toutes les règles disponibles se trouvent dans la documentation officielle.
Utiliser les données validées
validate retourne un tableau contenant uniquement les données validées. Vous pouvez les utiliser en toute confiance.
Affichage des erreurs dans Blade
En cas d’échec, Laravel rend la variable$errors disponible dans toutes les vues, grâce au middleware ShareErrorsFromSession inclus dans le groupe web.
Afficher toutes les erreurs
Afficher les erreurs par champ
@error affiche l’erreur d’un champ précis en inline.
Form requests
Qu’est-ce qu’une form request
Quand la logique de validation devient complexe, il est efficace de l’externaliser dans une classe « form request ». Elle regroupe la validation et l’autorisation dans une classe de requête personnalisée.Créer une form request
Utilisezmake:request pour générer la classe.
app/Http/Requests/StorePostRequest.php est généré.
Méthode rules()
Retourne les règles de validation sous forme de tableau, comme celui passé à validate.
Méthode authorize()
Détermine si l’utilisateur peut effectuer cette requête.
true autorise, false retourne automatiquement une réponse 403.
Pour n’autoriser que les utilisateurs authentifiés, vérifiez avec auth()->check().
Dans un tutoriel, il est acceptable de retourner true.
Injection dans le contrôleur
Il suffit de type-hinter la form request dans la méthode. La validation s’exécute avant la méthode : vous n’écrivez plus de code de validation dans le contrôleur.$request->validated() retourne uniquement les données validées.
Exemple : formulaire de création et enregistrement
Enchaînement complet de l’affichage du formulaire à l’enregistrement.1
Déclaration des routes
2
Création de la form request
3
Implémentation du contrôleur
4
Création du template Blade
Incluez toujours la directive
@csrf dans les formulaires Blade. Sans le token CSRF, Laravel renvoie une erreur 419.Prochaines étapes
Requêtes HTTP
Revenez sur les moyens de récupérer les données via l’objet Request.