trexology / reviewrateable
Rating syetem for Laravel 5
Installs: 14 373
Dependents: 0
Suggesters: 0
Security: 0
Stars: 35
Watchers: 3
Forks: 18
Open Issues: 9
Requires
- php: >=5.5.9
- illuminate/support: ~5.0
This package is auto-updated.
Last update: 2024-12-17 17:55:49 UTC
README
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.