devianl2/laravel-comment

Laravel comment and rateable package

1.0.6 2023-05-13 16:16 UTC

This package is auto-updated.

Last update: 2024-12-13 19:38:38 UTC


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:

  1. 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
  1. 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;
}
  1. 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

  1. Get average rating: Retrieve the average rating for a post.
$post = Post::first();
$post->averageRating();
  1. Get comments: Retrieve all comments for a post.
$post->getComments();
  1. Get approved comments: Retrieve only approved comments for a post.
$post->getComments(true);
  1. Get paginated approved comments: Retrieve approved comments for a post with pagination.
$post->getComments(true, true);
  1. 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);
  1. 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 .