13 Les Bases de Laravel 11 : Validation

Apprenez les essentiels de la validation Laravel 11 et ameliorez vos competences en developpement avec des exemples pratiques et les meilleures pratiques.
Definition des Routes
Tout d'abord, supposons que nous avons les routes suivantes definies dans notre fichier routes/web.php :
use App\Http\Controllers\PostController;
Route::get('/post/create', [PostController::class, 'create']);
Route::post('/post', [PostController::class, 'store']);La route GET affiche un formulaire pour que l'utilisateur cree un nouvel article de blog, tandis que la route POST stocke le nouvel article dans la base de donnees.
Creation du Controleur
Ensuite, examinons un controleur simple qui gere les requetes entrantes vers ces routes. Nous laisserons la methode store vide pour l'instant :
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
class PostController extends Controller
{
public function create()
{
return view('post.create');
}
public function store(Request $request): RedirectResponse
{
// La logique de validation ira ici
}
}Ecrire la Logique de Validation
Maintenant nous sommes prets a remplir notre methode store avec la logique pour valider le nouvel article de blog. Pour cela, nous utiliserons la methode validate fournie par l'objet Illuminate\Http\Request :
public function store(Request $request): RedirectResponse
{
$validated = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// L'article de blog est valide...
return redirect('/posts');
}Comme vous pouvez le voir, les regles de validation sont passees a la methode validate. Si la validation echoue, une Illuminate\Validation\ValidationException sera levee, et la reponse d'erreur appropriee sera automatiquement renvoyee a l'utilisateur.
Afficher les Erreurs de Validation
Alors, que se passe-t-il si les champs de la requete entrante ne passent pas les regles de validation donnees ? Laravel redirigera automatiquement l'utilisateur vers son emplacement precedent et toutes les erreurs de validation et les entrees de la requete seront flashees dans la session. Une variable $errors est partagee avec toutes les vues, vous permettant d'afficher les messages d'erreur facilement :
<!-- resources/views/post/create.blade.php -->
@if ($errors->any())
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endifValidation par Requete de Formulaire
Pour des scenarios de validation plus complexes, vous pouvez souhaiter creer une "requete de formulaire". Les requetes de formulaire sont des classes de requete personnalisees qui encapsulent leur propre logique de validation et d'autorisation :
php artisan make:request StorePostRequestLa classe de requete de formulaire generee sera placee dans le repertoire app/Http/Requests. Chaque requete de formulaire a deux methodes : authorize et rules.
Personnaliser les Messages d'Erreur
Les regles de validation integrees de Laravel ont chacune un message d'erreur situe dans le fichier lang/en/validation.php de votre application. Vous pouvez modifier ces messages selon les besoins de votre application. Par exemple :
public function messages(): array
{
return [
'title.required' => 'Un titre est requis',
'body.required' => 'Un message est requis',
];
}Specifier des Attributs Personnalises
Pour remplacer le placeholder :attribute dans les messages de validation par des noms d'attributs personnalises, vous pouvez specifier des noms personnalises dans la methode attributes :
public function attributes(): array
{
return [
'email' => 'adresse email',
];
}Conclusion
Laravel 11 fournit des fonctionnalites de validation puissantes et flexibles qui aident a assurer l'integrite des donnees de votre application. En maitrisant ces techniques de validation, vous pouvez construire des applications web robustes et fiables.
Pour plus d'informations detaillees, consultez la documentation officielle de Validation Laravel 11.
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

15 Les Bases de Laravel 11 : Logging
Apprenez les fondamentaux du logging dans Laravel 11. Ce tutoriel couvre la configuration, l'ecriture de messages de log et la personnalisation des canaux de log.

1 Les Bases de Laravel 11 : PHP en 15 minutes
Un article instructif qui enseigne les bases du langage de programmation PHP.

Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires
Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires