Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Validation des Données dans Laravel
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Validation des Données dans Laravel

L'Équipe Alphorm Par L'Équipe Alphorm 9 janvier 2025
Partager
Partager

Les données incorrectes ou malveillantes peuvent compromettre la sécurité et la cohérence de votre base de données.

Sans validation appropriée, vous risquez des erreurs d’insertion, des doublons et des failles de sécurité.

Dans cet article, nous explorons comment Laravel assure une validation efficace des données pour protéger et optimiser votre application.

Table de matière
Validation des données : méthode store LaravelGestion des erreurs de validation en formulaireRésultats de validation et erreurs dans ArticleControllerFAQConclusion

Formation Laravel : Le Guide Complet du Débutant

Initiez-vous à Laravel et réalisez votre première application en toute confiance.

Découvrir cette formation

Avant d’ajouter un nouvel article dans la base de données, il est essentiel de valider les données soumises par l’utilisateur afin de garantir qu’elles respectent certaines règles de cohérence et de sécurité. Cela permet d’éviter l’insertion de données incorrectes ou malveillantes dans la base de données. Dans cette étape, nous allons aborder la validation des données dans la méthode store du contrôleur, ainsi que l’affichage des erreurs dans le formulaire, notamment pour le champ de catégorie.

Diagramme de validation des données en base

Validation des données : méthode store Laravel

Nous allons d’abord ajouter une validation des données dans la méthode store pour nous assurer que les informations envoyées par l’utilisateur respectent certaines règles.

Code modifié de la méthode store dans ArticleController :

				
					
 public function store(Request $request)
{
request()->validate([
'title'=>['required','max:20','unique:articles,title'],
'content'=>['required'],
'category'=>['sometimes','nullable','exists:categories,id'],
]);
$article=new Article();
$article->user_id =auth()->id();
$article->category_id=request('category',null);
$article->title=request('title');
$article->slug=Str::slug($article->title);
$article->content=request('content');
$article->save();
$success ='Article ajouté';
return back()->withSuccess($success);
}

				
			

Explications des règles de validation :

  • ‘title’ => [‘required’, ‘max :255′, ‘unique:articles,title’]required: Le champ title est obligatoire, il ne peut pas être vide.max:255: Le titre ne doit pas dépasser 255 caractères.unique:articles,title: Le titre de l’article doit être unique dans la table articles pour éviter les doublons.
  • ‘content’ => [‘required’]
    • Le contenu de l’article est également obligatoire.
  • ‘category’ => [‘sometimes’, ‘nullable’, ‘exists :categories,i’]sometimes: Cette règle indique que la validation du champ category est appliquée uniquement si ce champ est présent dans la requête.nullable: Le champ peut être vide (il est optionnel).exists:categories,id: Si la catégorie est présente, elle doit exister dans la table categories et être un id valide.
  • Le contenu de l’article est également obligatoire.

Gestion des erreurs de validation en formulaire

Maintenant, nous allons modifier le formulaire dans create.blade.php pour afficher les erreurs de validation lorsque l’utilisateur soumet un formulaire incorrect.

Code du formulaire avec validation des erreurs dans article/create.blade.php :

				
					
 <form action="{{ route('articles.store') }}" method="post">
@csrf
<div class="form-group">
<label for="title">Titre</label>
<input type="text" name="title" class="form-control" value="{{ old('title') }}">
@error('title')
<div class="error">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="content">Contenu</label>
<textarea class="form-control" name="content" cols="30" rows="5" placeholder="Contenu de l'article">{{ old('content') }}</textarea>
@error('content')
<div class="error">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="category">Catégorie</label>
<select name="categorie" class="form-control">
<option value=""></option>
@foreach($categories as $category)
<option value="{{$category->id}}" @if( old('category') === $category->id ) selected @endif>{{$category->name}}</option>
@endforeach
</select>
@error('category')
<div class="error">{{ $message }}</div>
@enderror
</div>
<button type="submit" class="btn btn-primary">Ajouter</button>
</form>

				
			
  • old(‘title’)etold(‘content’) :La fonction old() permet de pré-remplir les champs avec les valeurs saisies précédemment, afin que l’utilisateur ne perde pas les données déjà entrées lorsqu’une erreur est survenue. Si l’utilisateur soumet le formulaire avec une erreur de validation, les anciennes valeurs seront réaffichées.
  • @error(‘title’) et @error(‘content’) :Ces directives permettent d’afficher les messages d’erreur associés à chaque champ spécifique si la validation échoue.
  • @if( old(‘category’) === $category->id ) selected @endif :Cette ligne permet de pré-sélectionner la catégorie dans la liste déroulante si l’utilisateur a déjà sélectionné une catégorie lors de la soumission du formulaire avec une erreur. Cela garantit que la catégorie choisie par l’utilisateur reste sélectionnée après un échec de validation.

Résultats de validation et erreurs dans ArticleController

Lorsqu’une erreur de validation se produit, le message d’erreur associé à chaque champ est affiché dans un encadré rouge juste sous le champ correspondant. Par exemple :

  • Si le titre dépasse 255 caractères ou est déjà pris, un message comme « Le titre est obligatoire. » ou « Le titre doit être unique. » apparaîtra sous le champ titre.
  • Si le champ de contenu est vide, l’erreur « Le contenu est obligatoire. » sera affichée.
Formulaire de saisie avec messages d'erreur

En ce qui concerne l’affichage de l’erreur indiquant que le titre doit être unique, nous avons déjà inséré un titre tel que « mon titre ». Lors de la tentative d’insertion une deuxième fois, voici l’erreur qui s’affiche :

Interface de validation avec erreurs
  • Si une catégorie invalide est sélectionnée, l’erreur « La catégorie doit exister. » sera affichée.

Pour tester ce cas, modifiez la valeur de la catégorie sélectionnée dans l’élément. Lorsqu’on inspecte le code, on remarque qu’il y a un identifiant qui n’existe pas, ce qui entraîne l’affichage de cette erreur :

Formulaire avec champs manquants en rouge

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment fonctionne la validation des données dans Laravel ?
La validation des données dans Laravel fonctionne en définissant des règles dans la méthode store du contrôleur. Par exemple, le champ ‘title’ doit être unique et ne pas dépasser 255 caractères. Cela assure que les données soumises par l’utilisateur sont correctes et sécurisées avant d’être insérées dans la base de données.
Pourquoi est-il important de valider les données utilisateur ?
La validation des données utilisateur est cruciale pour empêcher l’insertion de données incorrectes ou malveillantes dans la base de données. Elle garantit la cohérence et la sécurité des informations, évitant ainsi les problèmes tels que les doublons ou les failles de sécurité dans l’application.
Quelles sont les règles de validation pour le champ 'title' ?
Pour le champ ‘title’, les règles de validation incluent ‘required’, ‘max:255’, et ‘unique:articles,title’. Cela signifie que le titre est obligatoire, ne doit pas dépasser 255 caractères, et doit être unique parmi tous les articles pour éviter les doublons.
Comment gérer les erreurs de validation dans le formulaire ?
Dans Laravel, les erreurs de validation sont gérées en utilisant les directives @error dans le formulaire. Elles affichent les messages d’erreur sous les champs concernés lorsque la validation échoue, permettant à l’utilisateur de corriger les erreurs sans perdre les données précédemment saisies.
Comment pré-remplir les champs après une erreur de validation ?
La fonction old() de Laravel est utilisée pour pré-remplir les champs avec les valeurs précédemment saisies lorsque le formulaire est soumis avec des erreurs. Cela assure que l’utilisateur ne perd pas ses entrées et peut facilement corriger les erreurs.

Conclusion

En intégrant une validation rigoureuse des données, vous garantissez non seulement la sécurité de vos informations, mais vous améliorez également la qualité et la fiabilité de votre application. Quels autres aspects de Laravel souhaitez-vous explorer pour renforcer vos compétences ?

ÉTIQUETÉ : Laravel
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Validation des Données dans Laravel

© Alphorm - Tous droits réservés