daniyal-javani/laravel-rating

为eloquent模型管理评分列

v1.5 2020-09-26 07:23 UTC

This package is auto-updated.

Last update: 2024-09-26 15:50:40 UTC


README

               

Laravel-Ratings

Laravel 包,允许您以简单直观的方式对模型进行评分、点赞、点踩或投票。
如果您认为这个包有帮助,请不要吝啬给我一颗星 :)

评分

CanRate 特性包含到您的用户模型中,以应用评分功能

use Nagy\LaravelRating\Traits\Rate\CanRate;

class User extends Model
{
    use CanRate;

Rateable 特性包含到将被评分的模型中

use Nagy\LaravelRating\Traits\Rate\Rateable;

class Post extends Model
{
    use Rateable;

现在您可以按以下方式对模型进行评分

$user->rate($postModel, 5);

获取模型的平均评分

$post->ratingsAvg();

获取模型的总体评分数量

$post->ratingsCount();

获取用户评分的模型

$user->rated(); // returns a collection of rated models

投票

CanVote 特性包含到用户模型中以应用评分功能

use Nagy\LaravelRating\Traits\Vote\CanVote;

class User extends Model
{
    use CanVote;

Votable 特性包含到将被投票的模型中

use Nagy\LaravelRating\Traits\Vote\Votable;

class Post extends Model
{
    use Votable;

现在您可以按照以下方式为您的模型投票

// up vote or +1  your model
$user->upVote($postModel);

// down vote or -1 your model
$user->downVote($postModel);

获取总投票数

$postModel->votesCount();

获取总点赞数

$postModel->upVotesCount();

获取总踩数

$postModel->downVotesCount();

获取用户点赞的模型

$user->upVoted(); // returns a collection of up voted models

获取用户踩的模型

$user->downVoted(); // returns a collection of down voted models

获取用户投票的模型总数

$user->voted(); // returns a collection of total voted models;

点赞 & 踩

CanLike 特性包含到用户模型中以应用点赞和踩功能

use Nagy\LaravelRating\Traits\Like\CanLike;

class User extends Model
{
    use CanLike;

Likeable 特性包含到将被点赞的模型中

use Nagy\LaravelRating\Traits\Like\Likeable;

class Post extends Model
{
    use Likeable;

现在您可以按照以下方式为您的模型点赞

// like
$user->like($postModel);

// dislike
$user->dislike($postModel);

获取总点赞数

$postModel->likesCount();

获取总踩数

$postModel->dislikesCount();

获取总点赞和踩数

$postModel->likesDislikesCount();

获取用户点赞的模型

$user->liked(); // return a collection of liked models;

获取用户踩的模型

$user->disliked(); // return a collection of disliked models;

获取用户点赞和踩的模型总数

$user->likedDisliked(); // return a collection of liked and disliked models;

安装

针对 laravel 7.*

$ composer require nagy/laravel-rating:^1.4

针对 laravel 6.*

$ composer require nagy/laravel-rating:^1.3

针对 laravel 5.*

$ composer require nagy/laravel-rating:^1.2

在您的 config/app.php 文件中

    'providers' => [
        ...
        Nagy\LaravelRating\LaravelRatingServiceProvider::class
    ],

    'aliases' => [
        ...
        "LaravelRating" => \Nagy\LaravelRating\LaravelRatingFacade::class,
    ]

在 laravel5.5 中不需要此步骤,package:discover 会完成这项工作 :)

发布迁移

$ php artisan vendor:publish --tag=laravelRatings

运行迁移

$ php artisan migrate