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 : Mise à jour d’articles 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

Mise à jour d’articles dans Laravel

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

Mettre à jour un article dans une application Laravel peut sembler complexe.

Sans une bonne gestion des permissions et des méthodes HTTP, des erreurs peuvent survenir, compromettant la sécurité de l’application.

Cet article vous guide à travers la création d’un formulaire de mise à jour sécurisé en utilisant la méthode PUT dans Laravel tout en vérifiant les permissions utilisateur.

Table de matière
Editer article avec PUT dans LaravelFormulaire édition article LaravelBouton modifier : permissions et affichageFAQConclusion

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

Dans cette section, vous allez apprendre à créer un formulaire permettant de mettre à jour un article dans votre application, ainsi qu’à implémenter la méthode PUT dans votre contrôleur. Nous allons aborder les différentes étapes à suivre, y compris la validation, le formulaire, la vue, et la gestion des permissions pour l’édition.

Flux de données ArticleController vers BDD

Editer article avec PUT dans Laravel

Dans le contrôleur ArticleController, vous devez créer une méthode edit qui permet de récupérer un article existant et de le pré-remplir dans un formulaire pour qu’il puisse être modifié. Voici comment procéder.

Voici le code de la méthode edit

				
					
 public function edit(Article $article)
{
abort_if(auth()->id() != $article->user_id, 403);
$data = [
'title' => $description = 'Mise à jour de ' . $article->title,
'description' => $description,
'article' => $article,
'categories'=>Category::get(),
];
return view('article.edit', $data);
}

				
			

Explication

  • Vérification des permissions :Nous utilisons abort_if(auth()->id() != $article->user_id, 403) pour vérifier que l’utilisateur authentifié est bien le propriétaire de l’article. Si ce n’est pas le cas, un message d’accès interdit est affiché (code 403).

Données à passer à la vue :

  • Le titre et la description de la page sont définis.
  • L’article à éditer est récupéré et envoyé à la vue pour afficher les informations actuelles.
  • Les catégories disponibles sont également envoyées pour permettre à l’utilisateur de choisir une nouvelle catégorie.

Formulaire édition article Laravel

Une fois que vous avez préparé les données dans le contrôleur, vous devez maintenant créer le formulaire dans la vue article.edit. Ce formulaire permettra à l’utilisateur de modifier le titre, le contenu et la catégorie de l’article.

Voici le code de page edit.blade.php

				
					
 @extends('layouts.main')
@section('content')
<div class="row">
<div class="col-lg-3">
@include('includes/sidebar')
</div>
<!-- /.col-lg-3 -->
<div class="col-lg-9">
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@endif
<div class="card card-outline-secondary my-4">
<div class="card-header">
Modifier {{ $article->title }}
</div>
<div class="card-body">
<form action="{{ route('articles.update', ['article' => $article->slug]) }}" method="post">
@method('PUT')
@csrf
<div class="form-group">
<label for="title">Titre</label>
<input type="text" name="title" class="form-control" value="{{ old('title', $article->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', $article->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', $article->category_id ?? '') == $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>
</div>
</div>
</div>
<!-- /.col-lg-9 -->
</div>
@stop

				
			

Explication

Action du formulaire : Le formulaire envoie une requête POST vers la route articles.update, mais la méthode @method(‘PUT’) permet de simuler une requête PUT pour la mise à jour.

Champs du formulaire :

  • Titre :Le champ title est pré-rempli avec la valeur actuelle de l’article grâce à old(‘title’, $article->title).
  • Contenu :Un champ textarea permet à l’utilisateur de modifier le contenu de l’article.
  • Catégorie :Un champ select est utilisé pour permettre à l’utilisateur de choisir la catégorie de l’article parmi celles disponibles.

Validation et erreurs : En cas d’erreur de validation, un message d’erreur s’affiche sous le champ concerné grâce à @error.

Astuce Pratique : Le formulaire HTML ne supporte pas directement la méthode PUT. C’est pourquoi nous utilisons le champ @method(‘PUT’) dans le formulaire pour simuler une requête PUT dans Laravel. Cela permet de réaliser une mise à jour des données d’une ressource existante.

Bouton modifier : permissions et affichage

Sur la page d’index des articles, vous devez afficher un bouton Modifier uniquement si l’utilisateur authentifié est le propriétaire de l’article. Voici comment ajouter cette fonctionnalité.

Voilà le code à ajouter dans la vue d’index :

				
					
 @if(Auth::check() && Auth::user()->id == $article->user_id)
<div class="author mt-4">
<a href="{{ route(&#039;articles.edit&#039;, [&#039;article&#039; =" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer"> $article->slug]) }}" class="btn btn-info">Modifier</a>
</div>
@endif

				
			

Explication

  • Ce bloc de code vérifie si l’utilisateur est authentifié (Auth ::check()) et si l’ID de l’utilisateur connecté correspond à l’ID du propriétaire de l’article (Auth::user()->id == $article->user_id).
  • Si ces conditions sont remplies, le bouton Modifier apparaît, permettant au propriétaire de l’article de le modifier.

Après avoir lancé le serveur, voici l’affichage de la page d’index des articles. Cette page liste tous les articles disponibles, accompagnés des options permettant de les modifier ou de les supprimer si vous êtes l’auteur de l’article

Page blog avec catégories Laravel, PHP, Javascript
Erreur Courante :
Problème : Si l’utilisateur tente de modifier un article qui ne lui appartient pas, une erreur de permission peut survenir.
Solution : Utilisez abort_if() dans la méthode edit pour vérifier les permissions de l’utilisateur et afficher un message d’erreur si nécessaire

Pour tester le bon fonctionnement, cliquez sur le bouton Modifier situé sous l’article, comme indiqué ci-dessous.

Capture d'écran d'un article blog Laravel

Cela ouvrira la page de modification, dont voici l’affichage.

Écran d'édition d'article de blog Laravel

En suivant ces étapes, vous avez créé un formulaire de mise à jour d’article dans Laravel, en utilisant la méthode PUT pour effectuer des mises à jour sécurisées. Vous avez également ajouté une logique de vérification des permissions pour permettre uniquement aux propriétaires des articles de les modifier. N’oubliez pas de tester soigneusement chaque fonctionnalité, y compris la gestion des erreurs et la validation des données.

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 créer un formulaire de mise à jour dans Laravel ?
Pour créer un formulaire de mise à jour dans Laravel, commencez par implémenter la méthode edit dans le contrôleur pour récupérer l’article à éditer. Ensuite, dans la vue, créez un formulaire qui utilise la méthode PUT pour soumettre les modifications. Assurez-vous de valider les données et de gérer les erreurs pour garantir une mise à jour sécurisée de l’article.
Pourquoi utiliser la méthode PUT pour les mises à jour dans Laravel ?
La méthode PUT est utilisée pour indiquer que la requête vise à mettre à jour une ressource existante. Dans Laravel, même si les formulaires HTML ne supportent pas directement PUT, on peut utiliser @method(‘PUT’) pour simuler cette méthode. Cela permet de s’assurer que l’application traite la requête comme une mise à jour, en respectant les normes HTTP.
Comment vérifier les permissions d'un utilisateur dans Laravel ?
Pour vérifier les permissions d’un utilisateur dans Laravel, utilisez la fonction abort_if() au sein de la méthode edit pour vérifier si l’utilisateur authentifié est le propriétaire de l’article. Si ce n’est pas le cas, renvoyez une erreur 403 pour empêcher l’accès non autorisé à la modification de l’article.
Comment gérer les erreurs de validation dans un formulaire Laravel ?
Dans Laravel, les erreurs de validation peuvent être gérées en utilisant la directive @error dans la vue du formulaire. Si une validation échoue, un message d’erreur sera automatiquement affiché sous le champ concerné, fournissant un retour visuel immédiat à l’utilisateur pour corriger les données saisies.
Comment afficher un bouton de modification conditionnellement ?
Pour afficher un bouton de modification uniquement pour le propriétaire d’un article, utilisez une condition dans la vue qui vérifie si l’utilisateur est authentifié et s’il est le propriétaire de l’article. Si les conditions sont remplies, affichez le bouton Modifier, permettant ainsi une gestion sécurisée des droits d’édition.

Conclusion

En suivant ces étapes, vous pouvez facilement mettre à jour des articles dans Laravel tout en assurant la sécurité et la validation des données. Quels autres aspects de Laravel aimeriez-vous explorer ?

É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 : Mise à jour d’articles dans Laravel

© Alphorm - Tous droits réservés