nelkasovic / laravel-rating
管理优雅模型评分列
v3.0.1
2023-02-16 15:00 UTC
Requires
- php: ^8.1
Requires (Dev)
- orchestra/testbench: ^8.0|^7.0|^6.0
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^5.0
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