A robust and flexible comment system for Laravel applications.
rizwan3d/comment-system is a Laravel package for a robust and flexible comment system for laravel applications..
It currently has 2 GitHub stars and 8 downloads on Packagist (latest version v1.0.0).
Install it with composer require rizwan3d/comment-system.
Discover more Laravel packages by rizwan3d
or browse all Laravel packages to compare alternatives.
Last updated
Rizwan3d/CommentSystem
This Laravel package provides a robust and flexible comment system for your applications. It enables you to seamlessly integrate commenting functionality into your models, allowing users to engage in discussions and leave feedback.
Installation
Add the package to your project's composer.json file:
"require": {
"rizwan3d/comment-system": "^1.0"
}
Run Composer to install the package:
composer update
Register the service provider:
Open your config/app.php file and add the following line to the providers array:
Rizwan3d\CommentSystem\Providers\CommentSystemServiceProvider::class,
Usage
Apply the Commentable trait to your models:
The Commentable trait provides methods for adding and retrieving comments associated with your models. Add the following line at the top of your model class:
use Rizwan3d\CommentSystem\Traits\Commentable;
Adding Comments:
Use the addComment method to add a new comment to your model instance:
$model->addComment($content);
$content with the actual comment text.Retrieving Comments:
The comments method returns a collection of comments associated with your model instance:
$comments = $model->comments;
This method automatically retrieves comments with nested replies using eager loading.
Model Relationships (Optional):
The package supports defining relationships between comments. You can add the parent_id field to your Comment model migration and define the following relationships:
parent: This belongs-to relationship allows you to link comments to their parent comment.comments: This has-many relationship retrieves child comments of a specific comment.Example Usage
use App\Post; // Replace with your model class
$post = Post::find(1);
$comment = $post->addComment('This post is great!');
$childComment = $comment->addComment('I agree!');
$allComments = $post->comments; // Includes $comment and $childComment
Features
View Example
<ol>
@foreach ($comments as $comment)
<li>{{$comment->content}}</li>
@include('comment',['comments' => $comment->comments])
@endforeach
</ol>
Contributing
We welcome contributions to this package! Please refer to the contribution guidelines for more information.
License
This package is licensed under the MIT License. See the LICENSE file for details.
Additional Notes