jobmetric / laravel-comment
This is a comment management package for Laravel that you can use in your projects.
Requires
- php: >=8.0.1
- jobmetric/laravel-package-core: ^1.7
- laravel/framework: >=9.19
This package is auto-updated.
Last update: 2024-12-18 20:17:40 UTC
README
Comment for laravel
This is a comment management package for any object in Laravel that you can use in your projects.
Install via composer
Run the following command to pull in the latest version:
composer require jobmetric/laravel-comment
Documentation
This package evolves every day under continuous development and integrates a diverse set of features. It's a must-have asset for Laravel enthusiasts and provides a seamless way to align your projects with basic comment models.
In this package, you can use it seamlessly with any model that needs comments.
Now let's go to the main function.
Before doing anything, you must migrate after installing the package by composer.
php artisan migrate
Meet the HasComment
class, meticulously designed for integration into your model. This class automates essential tasks, ensuring a streamlined process for:
In the first step, you need to connect this class to your main model.
use JobMetric\Comment\HasComment; class Post extends Model { use HasComment; }
When you add this class, you will have to implement CommentContract
to your model.
use JobMetric\Comment\Contracts\CommentContract; class Post extends Model implements CommentContract { use HasComment; }
Now you have to use the needsCommentApproval function, and you have to add it to your model.
use JobMetric\Comment\Contracts\CommentContract; class Post extends Model implements CommentContract { use HasComment; public function needsCommentApproval(): bool { return false; } }
How is it used?
You can now use the HasComment
class for your model.
Store comment
You can store a new comment by using the following code:
$post = Post::create([ 'title' => 'Post title', 'body' => 'Post body', ]); $post->comment('This is a comment', $parent_comment_id, $user_id);
If you want to store a comment without a parent comment, you can pass
null
to the second parameter.If you want to store a comment without a user, you can pass
null
to the third parameter.
Update comment
You can update an existing comment by using the following code:
$post->updateComment($comment->id, 'This is a new comment');
Forget comment
You can forget an existing comment by using the following code:
$post->forgetComment($comment->id);
Forget all comments
You can forget all comments by using the following code:
$post->forgetComments();
Get comments
You can get all comments by using the following code:
$comments = $post->comments;
Get approved comments
You can get all approved comments by using the following code:
$comments = $post->approvedComments;
Get unapproved comments
You can get all unapproved comments by using the following code:
$comments = $post->unapprovedComments;
Get parent comments
You can get all parent comments by using the following code:
$comments = $post->parentComments;
CanComment trait
You can also connect the CanComment
trait class to your User model.
use JobMetric\Comment\CanComment; class User extends Authenticatable { use CanComment; }
Events
This package contains several events for which you can write a listener as follows
Contributing
Thank you for considering contributing to the Laravel Comment! The contribution guide can be found in the CONTRIBUTING.md.
License
The MIT License (MIT). Please see License File for more information.