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 : Intégrer des Commentaires 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

Intégrer des Commentaires dans Laravel

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

Ajouter des fonctionnalités de commentaires à une application Laravel peut sembler complexe.

Sans une implémentation adéquate, cela peut entraîner des erreurs de base de données ou un manque de sécurité.

Dans cet article, nous vous guidons à travers la création d’un modèle, d’une migration, et d’un contrôleur pour gérer efficacement les commentaires.

Table de matière
Modèle Comment et migration LaravelRelations Eloquent pour les commentairesGérer avec CommentController LaravelRoute Laravel pour les commentairesFormulaire de commentaire 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 apprendrez à ajouter une fonctionnalité qui permet aux utilisateurs de laisser des commentaires sur vos articles. Cette fonctionnalité inclut la création du modèle, de la migration, du contrôleur, et des vues nécessaires pour gérer les commentaires. Suivez ces étapes détaillées pour intégrer cette fonctionnalité avec succès.

Diagramme de gestion des commentaires Laravel

Modèle Comment et migration Laravel

Pour commencer, vous devez créer un modèle Comment qui représentera les commentaires dans votre base de données. Une migration associée sera également générée pour définir la structure de la table.

Voici la commande pour générer le modèle et la migration :

				
					
 php artisan make:model Comment -m

				
			

Après en définir le modèle Comment :

Vous devez ajouter les relations entre les entités User et Article dans le modèle Comment. Voici le code :

				
					
 <?php

namespace App\Models;

 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;

 class Comment extends Model
 {
     use HasFactory;
     protected $fillable = ['user_id', 'article_id', 'content'];
     public function article()
     {
         return $this->belongsTo(Article::class);
     }
     public function user()
     {
         return $this->belongsTo(User::class);
     }
 }

				
			
Infos : Lors de la création du modèle Comment, veillez à configurer correctement les relations avec les entités User et Article grâce aux méthodes belongsTo(). Utilisez $fillable pour sécuriser les champs assignables par masse et définissez une migration cohérente avec des clés étrangères liées à user_id et article_id. Enfin, testez les relations via Tinker ou des Seeders pour garantir leur bon fonctionnement.

Ensuit vous créez la migration :

Vous devez configurer les colonnes nécessaires pour stocker les informations des commentaires dans la table. Voici la structure de la migration :

				
					
 public function up(): void
{
Schema::create('comments', function (Blueprint $table) {
$table->id();
$table->foreignId('article_id')->constrained()->onDelete('cascade');
$table->foreignId('user_id')->constrained()->onDelete('cascade');
$table->longText('content');
$table->timestamps();
});
}

				
			

En fin exécutez la commande suivante pour appliquer les changements à votre base de données :

				
					
 php artisan migrate

				
			

Voici un schéma simple pour le processus d’ajout d’un commentaire à un article :

Diagramme du flux de commentaires Laravel

Relations Eloquent pour les commentaires

Vous devez maintenant établir la relation entre les utilisateurs, les articles, et les commentaires dans leurs modèles respectifs.

Dans le modèle User :

Ajoutez cette méthode pour indiquer qu’un utilisateur peut avoir plusieurs commentaires :

				
					
 public function comments(){
return $this->hasMany(Comment::class);
}

				
			

Dans le modèle Article :

Ajoutez cette méthode pour relier un article à ses commentaires :

				
					
 public function comments(){
return $this->hasMany(Comment::class);
}

				
			

Gérer avec CommentController Laravel

Pour gérer l’ajout des commentaires, vous devez créer un contrôleur.

Commande pour générer le contrôleur :

				
					
 php artisan make:controller CommentController

				
			

Ajouter une méthode store dans le contrôleur :

La méthode store permettra de valider et d’ajouter un commentaire dans la base de données.

				
					
 <?php

namespace App\Http\Controllers;

 use Illuminate\Http\Request;
 use App\Models\{
     Comment, Article
 };
 use App\Events\CommentWasCreated;

 class CommentController extends Controller
 {
     public function __construct()
     {
         $this->middleware('auth');
     }
     public function store()
     {
     }
 }

				
			
Astuce Pratique : Pensez à valider les données dans la méthode store pour garantir leur conformité et utilisez l’événement CommentWasCreated pour notifier ou enregistrer des actions après l’ajout d’un commentaire. Assurez-vous que le middleware auth est bien configuré pour restreindre l’accès.

Route Laravel pour les commentaires

Ajoutez une route dans le fichier web.php pour relier la méthode store à une URL spécifique :

				
					
 Route::post('comment/{article}', [CommentController::class, 'store'])->name('post.comment');

				
			

Formulaire de commentaire et affichage

Dans la page show.blade.php d’un article, vous devez afficher la liste des commentaires liés

Voici exemple de page d’affichage

				
					
 <div class="card card-outline-secondary my-4">
<div class="card-header">
Commentaires
</div>
<div class="card-body">
@forelse($comments as $comment)
<p>{{ $comment->content }}</p>
<small class="text-muted"><a href="{{ route(&#039;user.profile&#039;, [&#039;user&#039;=" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">$comment->user->id]) }}">{{ $comment->user->name }}</a> le {{ $comment->created_at->isoFormat('LLL') }}</small>
<hr>
@empty
<p>Pas de commentaire pour l'instant.</p>
@endforelse
@auth
<form action="{{ route('post.comment', ['article'=>$article->slug]) }}" method="post">
@csrf
<div class="form-group">
<label for="content">Laissez un commentaire</label>
<textarea class="form-control" name="content" cols="30" rows="5" placeholder="Votre commentaire...">{{ old('content') }}</textarea>
@error('content')
<div class="error">{{ $message }}</div>
@enderror
</div>
<button type="submit" class="btn btn-primary">Commenter</button>
</form>
@endauth
@guest
<a href="{{ route(&#039;login&#039;) }}" class="btn btn-success" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">Laisser un commentaire</a>
@endguest
</div>
</div>

				
			

Pour vérifier que tout fonctionne comme prévu, vous devez

En accéder à la page index d’article

Interface du blog avec commentaires Laravel

En cliquant sur un article, les détails des informations s’affichent. Ensuite, les commentaires existants sont visibles, avec la possibilité d’ajouter un commentaire.

Page blog Laravel avec section commentaires

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 modèle de commentaire dans Laravel?
Pour créer un modèle de commentaire dans Laravel, utilisez la commande ‘php artisan make:model Comment -m’. Cela génère un modèle Comment et une migration correspondante pour la base de données. Assurez-vous d’ajouter les relations nécessaires dans le modèle, en liant les commentaires aux utilisateurs et aux articles via les méthodes belongsTo().
Comment établir les relations Eloquent pour les commentaires?
Les relations Eloquent entre les commentaires, les utilisateurs et les articles se définissent dans les modèles respectifs. Dans le modèle Comment, utilisez les méthodes belongsTo() pour lier le modèle aux entités User et Article. Dans les modèles User et Article, utilisez hasMany() pour indiquer qu’un utilisateur ou un article peut avoir plusieurs commentaires.
Quelle est la structure de la migration pour les commentaires?
La migration pour les commentaires dans Laravel doit contenir les colonnes nécessaires pour stocker les informations essentielles. Utilisez Schema::create() pour créer la table ‘comments’ avec les colonnes ‘article_id’, ‘user_id’, et ‘content’. Assurez-vous d’inclure les clés étrangères pour ‘article_id’ et ‘user_id’ et de configurer onDelete(‘cascade’) pour maintenir l’intégrité des données.
Comment ajouter un contrôleur pour gérer les commentaires?
Créez un contrôleur pour gérer les commentaires avec la commande ‘php artisan make:controller CommentController’. Ajoutez une méthode store dans le contrôleur pour valider et sauvegarder les commentaires en base de données. Utilisez le middleware ‘auth’ pour sécuriser l’accès, et l’événement CommentWasCreated pour notifier après l’ajout d’un commentaire.
Comment afficher et ajouter des commentaires sur une page d'article?
Pour afficher et ajouter des commentaires sur une page d’article, intégrez une section de commentaires dans votre vue (par exemple, show.blade.php). Utilisez @forelse pour lister les commentaires existants et @auth pour permettre aux utilisateurs connectés de poster un commentaire via un formulaire. Proposez une option de connexion aux invités avec un lien vers la page de connexion.

Conclusion

La mise en place de commentaires dans Laravel enrichit l’interaction avec vos utilisateurs et améliore l’engagement. Quel autre aspect de Laravel souhaiteriez-vous approfondir?

É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 : Intégrer des Commentaires dans Laravel

© Alphorm - Tous droits réservés