abdullahfaqeir/laravel-rating

管理 eloquent 模型的评分列

v3.0 2022-03-10 16:18 UTC

This package is auto-updated.

Last update: 2024-09-10 22:02:26 UTC


README

               

新维护者

此包是对 Laravel-rating 的更新和维护分支

Laravel-Ratings

Laravel 包,允许您以简单明了的方式对模型进行评分、点赞和不喜欢或投票上下。
如果您觉得这个包有帮助,请给我一颗星:)

评分

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

use AbdullahFaqeir\LaravelRating\Traits\Rate\CanRate;

class User extends Model
{
    use CanRate;

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

use AbdullahFaqeir\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 AbdullahFaqeir\LaravelRating\Traits\Vote\CanVote;

class User extends Model
{
    use CanVote;

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

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

class User extends Model
{
    use CanLike;

Likeable特征包含到您将要可喜欢的模型中。

use AbdullahFaqeir\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 9.* , 8.*

composer require abdullahfaqeir/laravel-rating

在您的config/app.php文件中。

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

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

在laravel5.5中,您不需要这一步。:)

发布迁移文件。

php artisan vendor:publish --tag=laravelRatings

运行迁移。

php artisan migrate