La mise à jour des articles dans une base de données peut être complexe en raison des risques de validation incorrecte des données.
Sans une validation adéquate, des erreurs peuvent survenir, compromettant l’intégrité des données et l’expérience utilisateur.
Cet article explore l’utilisation de ArticleRequest pour valider efficacement les données d’un formulaire de mise à jour d’article, assurant ainsi une mise à jour sécurisée et conforme.
Initiez-vous à Laravel et réalisez votre première application en toute confiance.
Dans cette section, vous allez apprendre à valider les données d’un formulaire de mise à jour d’article, puis à les insérer ou mettre à jour en base de données. Nous allons utiliser la méthode update dans le contrôleur et définir des règles de validation via ArticleRequest.
Cela garantit que seules des données conformes aux règles spécifiées seront enregistrées, tout en offrant une gestion fluide des erreurs.
Mise à jour avec update dans ArticleController
Pour mettre à jour un article, vous devez d’abord ajouter ou modifier cette méthode dans le contrôleur ArticleController :
Voici l’implémentation de fonction update
public function update(ArticleRequest $request, Article $article)
{
abort_if(auth()->id() != $article->user_id, 403);
$validatedData = $request->validated();
$validatedData['category_id'] = request('category', null);
$article = Auth::user()->articles()->updateOrCreate(['id'=>$article->id], $validatedData);
$success = 'Article modifié';
return redirect()->route('articles.edit', ['article'=>$article->slug])->withSuccess($success);
}
Ce que vous faites ici :
- Vous validez les données grâce à la méthode validated de ArticleRequest.
- Vous utilisez updateOrCreate pour simplifier la gestion de la mise à jour ou de la création d’un article.
- Vous vérifiez les autorisations avec abort_if pour garantir que seul l’auteur peut modifier l’article.
Règles de validation avec ArticleRequest
Pour s’assurer que les données soumises respectent vos attentes, vous allez définir des règles de validation dans ArticleRequest . Voici un exemple de règles :
public function rules()
{
return [
'title'=> $this->method() == 'POST' ?
['required', 'max:20', 'unique:articles,title'] :
['required', 'max:20', Rule::unique('articles', 'title')->ignore($this->article)],
'content'=> ['required'],
'category'=>['sometimes', 'nullable', 'exists:categories,id'],
];
}
Ce que vous devez savoir :
Validation dynamique pour le titre :
- Si vous créez un nouvel article, le titre doit être unique (unique :articles,title).
- Si vous mettez à jour un article existant, vous ignorez l’article actuel pour éviter un conflit avec son propre titre (Rule ::unique()->ignore($this->article)).
Validation pour le contenu :
- Ce champ est obligatoire et ne peut pas être vide.
Validation pour la catégorie :
- Ce champ est facultatif (nullable), mais si une valeur est fournie, elle doit exister dans la table categories.
Tester la validation dynamique des formulaires
Pour tester le fonctionnement de cette validation, voici quelques exemples de cas :
Cas de réussite :
- Remplissez correctement tous les champs avec des valeurs valides.
- Cliquez sur « Modifier ». Si tout est valide, l’article est mis à jour, et un message de confirmation s’affiche.
Voici la page de modification
Champs vides :
- Laissez les champs title ou content vides.
- Cliquez sur « Modifier ». Vous verrez des messages d’erreur indiquant que ces champs sont requis.
Voilà l’affichage erreur
Titre déjà existant :
- Entrez un titre qui existe déjà dans un autre article (dans le cas d’une création).
- Cliquez sur « Modifier ». Une erreur s’affiche, indiquant que le titre doit être unique.
Message de confirmation après modification
- Lorsque vous mettez à jour un article avec succès, un message de confirmation est affiché. Par exemple :
Ce message aide l’utilisateur à savoir que l’opération a bien été réalisée.
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.
FAQ
Comment valider les données d'un formulaire de mise à jour d'article ?
Quelles sont les règles de validation pour le titre d'un article ?
Comment sécuriser la mise à jour d'un article par son auteur uniquement ?
Quels sont les cas de tests pour la validation de formulaire ?
Comment utiliser updateOrCreate pour gérer les articles ?
Conclusion
En maîtrisant la validation et la mise à jour des articles, vous garantissez une gestion efficace et sécurisée de votre contenu. Comment pourriez-vous appliquer ces principes à d’autres aspects de votre développement web ?