unisharp/ratable

let object can be rated

Package info

github.com/UniSharp/ratable

pkg:composer/unisharp/ratable

Statistics

Installs: 408

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

dev-master / 1.0.x-dev 2018-05-23 11:08 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 0a9513738587ae2aa8b9c4908447da12d13f6214

  • UniSharp <opensource.woop@unisharp.com>

UniSharp

This package is auto-updated.

Last update: 2026-06-22 01:33:22 UTC


README

Provide a trait to multiple models to rate easliy.

Installation

composer require unisharp/ratable dev-master

Configuration

Set provider modules in config/app.php

return [
 'providers' => [
 UniSharp\Ratable\Providers\RatableServiceProvider:class
 ]
];

Usages

Use trait in the model

namespace App;

use Illuminate\Database\Eloquent\Model;
use UniSharp\Ratable\Traits\Ratable;

class Movie extends Model
{
 use Ratable;
}

Rate your model with grade and/or description

$movie = new Movie();

$movie->rates()->create([
 'grade' => 10,
 'description' => 'Excellent'
]);

Get your model's average rate

$movie = new Movie();

$movie->rates()->saveMany(
 new UniSharp\Ratable\Models\Rate(['grade' => 10, 'description' => 'Excellent'],
 new UniSharp\Ratable\Models\Rate(['grade' => 5, 'description' => 'Not Bad']
);

$movie->average() // 7.5

Get a rate's giver and model

$movie = new Movie();

$rate = $movie->rates()->create([
 'grade' => 10,
 'description' => 'Excellent'
]);

// giver
$rate->user;

// model
$rate->ratable;