dutta/laravel-rating

管理优雅模型的评分列

1.0.2 2022-08-17 11:55 UTC

This package is auto-updated.

Last update: 2024-09-17 16:30:43 UTC


README

               

新维护者

现在此包由 Dutta Fachrezy 维护

Laravel-Ratings

Laravel 包,允许您以简单清晰的方式对模型进行评分、点赞、踩或投票。
如果你觉得这个包有帮助,不要吝啬给我一个星标 :)

评分

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

use Dutta\LaravelRating\Traits\Rate\CanRate;

class User extends Model
{
    use CanRate;

Rateable 特性包含到您要评分的模型中

use Dutta\LaravelRating\Traits\Rate\Rateable;

class Post extends Model
{
    use Rateable;

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

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

同时,您也可以取消对模型评分

$user->unrate($postModel);

// alternatively
$user->rate($postModel, -1);
// or
$user->rate($postModel, false);
// or
$user->rate($postModel, null);

获取模型的平均评分

$post->ratingsAvg();

获取模型评分的总数

$post->ratingsCount();

获取用户评分的模型

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

投票

CanVote 特性包含到您的用户模型中以应用投票功能

use Dutta\LaravelRating\Traits\Vote\CanVote;

class User extends Model
{
    use CanVote;

Votable 特性包含到您要投票的模型中

use Dutta\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 Dutta\LaravelRating\Traits\Like\CanLike;

class User extends Model
{
    use CanLike;

Likeable 特性包含到您的模型中,使其可点赞

use Dutta\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 8.* , 7.* , 6.*

composer require dutta/laravel-rating

在您的 config/app.php 文件中

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

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

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

发布迁移文件

php artisan vendor:publish --tag=laravelRatings

运行迁移

php artisan migrate