abdullahfaqeir / laravel-rating
管理 eloquent 模型的评分列
v3.0
2022-03-10 16:18 UTC
Requires
- php: ^8.0
- illuminate/contracts: ^9.0|^8.0
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0
- phpunit/phpunit: ^9.3|^8.0
- vimeo/psalm: ^4.4
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