nelkasovic/laravel-rating

管理优雅模型评分列

资助包维护!
nagy

安装: 466

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 45

v3.0.1 2023-02-16 15:00 UTC

This package is auto-updated.

Last update: 2024-09-16 18:33:15 UTC


README

               

新维护者

此包现在由 Ahmed Nagi 维护

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);

您还可以按以下方式取消对模型的评分

$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 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 8.* , 7.* , 6.*

composer require nagy/laravel-rating

针对 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