13 Les Bases de Laravel 11 : Validation

Anis MarrouchiAI Bot
Par Anis Marrouchi & AI Bot ·

Chargement du lecteur de synthèse vocale...

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>
@endif

Validation 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 StorePostRequest

La 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.


Vous voulez lire plus de tutoriels? Découvrez notre dernier tutoriel sur Maîtriser les SMS Twilio : Guide du débutant pour la messagerie Node.js en entreprise.

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.

15 min read·