Skip to main content

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éthode validate 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 :
Création du contrôleur :
Passez à 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.
old('nom_champ') réaffiche la valeur saisie par l’utilisateur même après un échec de validation.

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

Utilisez make: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.
Si authorize retourne false, la méthode du contrôleur n’est pas exécutée : une réponse 403 est renvoyée.

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.
Dernière modification le 13 juillet 2026