Trexology / laravel-reviewRateable by trexology

Rating syetem for Laravel 5
14,373
35
3
Package Data
Maintainer Username: trexology
Maintainer Contact: trexlim@gmail.com (Trex Lim)
Package Create Date: 2015-11-11
Package Last Update: 2019-06-17
Language: PHP
License: MIT
Last Refreshed: 2024-12-14 15:05:35
Package Statistics
Total Downloads: 14,373
Monthly Downloads: 2
Daily Downloads: 0
Total Stars: 35
Total Watchers: 3
Total Forks: 18
Total Open Issues: 9

Latest Stable Version Total Downloads Latest Unstable Version License

Laravel ReviewRateable

ReviewRateable system for laravel 5.*

Installation

First, pull in the package through Composer.

composer require trexology/reviewrateable

And then include the service provider within app/config/app.php. (Skip this step if you are on Laravel 5.5 or above)

'providers' => [
    Trexology\ReviewRateable\ReviewRateableServiceProvider::class
];

At last you need to publish and run the migration.

php artisan vendor:publish --provider="Trexology\ReviewRateable\ReviewRateableServiceProvider" && php artisan migrate

Setup a Model

<?php

namespace App;

use Trexology\ReviewRateable\Contracts\ReviewRateable;
use Trexology\ReviewRateable\Traits\ReviewRateable as ReviewRateableTrait;
use Illuminate\Database\Eloquent\Model;

class Post extends Model implements ReviewRateable
{
    use ReviewRateableTrait;
}

Create a rating

$user = User::first();
$post = Post::first();

$rating = $post->rating([
    'title' => 'Some title',
    'body' => 'Some body',
    'rating' => 5,
], $user);

dd($rating);

Update a rating

$rating = $post->updateRating(1, [
    'title' => 'new title',
    'body' => 'new body',
    'rating' => 3,
]);

Delete a rating:

$post->deleteRating(1);

Fetch the average rating:

$post->averageRating()

or

$post->averageRating(2) //round to 2 decimal place

Count total rating:

$post->countRating()

Fetch the rating percentage.

This is also how you enforce a maximum rating value.

$post->ratingPercent()

$post->ratingPercent(10)); // Ten star rating system
// Note: The value passed in is treated as the maximum allowed value.
// This defaults to 5 so it can be called without passing a value as well.