devianl2 / laravel-comment
Laravel comment and rateable package
1.0.6
2023-05-13 16:16 UTC
Requires
- php: ^7.4 || ^8.0
- illuminate/database: ~7.0|^8.0|^9.0|^10.0
- illuminate/support: ~7.0|^8.0|^9.0|^10.0
- nesbot/carbon: ^2.42
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.16
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^9.5
README
This Laravel package provides a robust solution for managing comments and ratings in your Laravel application. It allows you to easily perform the following actions:
Installation
You can install the package via Composer by running the following command:
composer require devianl2/laravel-comment
Usage
To use this package, you need to follow these steps:
- Set up the package : After installation, make sure to publish the package configuration and migrations.
php artisan vendor:publish --provider="Devianl2\CommentRateable\CommentRateableServiceProvider" --tag="migrations" php artisan migrate
- Add the trait to your Post model : In order to enable comment and rating functionality, add the
CommentRateable
trait to your Post model.
use Devianl2\CommentRateable\Traits\CommentRateable; class Post extends Model { use CommentRateable; }
- Perform actions : You can now use the available methods on your Post model to perform actions, such as retrieving comments, getting average ratings, or deleting comments.
Use Case
Save Comment
$post = Post::first(); $comment = $post->comment([ 'title' => 'This is a test title', 'body' => 'And we will add some shit here', 'rating' => 5, 'is_approved' => true, // This is optional and defaults to false ], $user);
Update Comment
$post = Post::first(); $comment = $post->updateComment( $commentId, [ 'title' => 'This is a test title', 'body' => 'And we will add some shit here', 'rating' => 5, 'is_approved' => true, // This is optional and defaults to false ], $user);
Other Methods
- Get average rating: Retrieve the average rating for a post.
$post = Post::first(); $post->averageRating();
- Get comments: Retrieve all comments for a post.
$post->getComments();
- Get approved comments: Retrieve only approved comments for a post.
$post->getComments(true);
- Get paginated approved comments: Retrieve approved comments for a post with pagination.
$post->getComments(true, true);
- Get all comments without pagination: Retrieve all comments for a post without pagination and limits. (Set the limit to 0 for unlimited comments)
$post->getComments(true, false, 0);
- Delete comment: Delete a comment.
$comment->delete();
Contribution
Contributions to this package are always welcome. If you find any issues or want to add new features, please create an issue or submit a pull request on the GitHub repository of this package.
License
This package is open-source software licensed under the MIT license .