rizwan3d / comment-system
A robust and flexible comment system for Laravel applications.
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/rizwan3d/comment-system
Requires
- php: ^7.4
Requires (Dev)
- laravel/pint: ^1.5
README
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.jsonfile:"require": { "rizwan3d/comment-system": "^1.0" }
-
Run Composer to install the package:
composer update
-
Register the service provider:
Open your
config/app.phpfile and add the following line to theprovidersarray:Rizwan3d\CommentSystem\Providers\CommentSystemServiceProvider::class,
Usage
-
Apply the
Commentabletrait to your models:The
Commentabletrait 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
addCommentmethod to add a new comment to your model instance:$model->addComment($content);
- Replace
$contentwith the actual comment text.
- Replace
-
Retrieving Comments:
The
commentsmethod 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_idfield to yourCommentmodel 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
- Integrates seamlessly with your Laravel models.
- Allows users to add comments to any model.
- Supports nested replies (optional).
- Provides methods for adding, retrieving, and managing comments.
View Example
comment.blade.php
<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
- Consider adding comments and explanations within the code for better readability.
- Feel free to extend the functionality of this package based on your specific requirements.