Skip to content

Trexology/laravel-reviewRateable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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', //optional
    'anonymous' => 1, //optional
    'rating' => 5,
], $user);

dd($rating);

Update a rating

$rating = $post->updateRating(1, [
    'title' => 'new title',
    'body' => 'new body', //optional
    'anonymous' => 1, //optional
    '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()

Count rating meta (Count and Avg):

$post->ratingMeta()

or

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

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.