agilepixels / laravel-rateable
一个用于为Eloquent模型添加评分的包
Requires
- agilepixels/laravel-commentable: ^1.0.0
This package is auto-updated.
Last update: 2024-09-25 06:43:56 UTC
README
想象你想为Eloquent模型添加星级评分。此包为您启用此功能。评分可以是0到5颗星,+1/-1或您喜欢的任何其他范围。
此包提供 HasRatings
和 AddsRatings
特性,一旦安装到模型上,就可以执行如下操作:
// Add a rating for a model $model->createRating($rating = 4, $author = $user, $body = 'Very nice!'); // Calculate the average rating for a model $model->averageRating(); // Sum the ratings for a model $model->sumRating();
安装
您可以通过composer安装此包
composer require agilepixels/laravel-rateable
评分迁移将自动加载。您可以使用以下命令迁移 ratings
表:
php artisan migrate
包含一个配置文件,用于指定评分的范围。默认情况下,评分为0到5。但是,您可以自由地以其他方式使用它。例如,+1或-1之类的评分。您可以使用以下命令发布配置文件:
php artisan vendor:publish --provider="AgilePixels\Rateable\RateableServiceProvider" --tag="config"
使用特性
要为模型启用评分,请在该模型上使用 AgilePixels\Rateable\Traits\HasRatings
特性。
<?php namespace App; use Illuminate\Database\Eloquent\Model; use AgilePixels\Rateable\Traits\HasRating; class Product extends Model { use HasRating; }
如果您想计算作者模型的评分,您可以在您的用户模型(或任何可以添加评分的其他模型)上使用 AgilePixels\Rateable\Traits\AddsRatings
特性。
<?php namespace App; use Illuminate\Database\Eloquent\Model; use AgilePixels\Rateable\Traits\AddsRating; class User extends Model { use AddsRating; }
使用
创建评分方法
要为具有 HasRatings
的模型创建评分,您可以使用 createRating()
方法。该方法接受两个变量:$rating
和 $author
。其中 $rating
可以是配置文件中定义范围内的整数或浮点数(默认为0到5)。$author
指的是 AddsRatings
模型,在大多数情况下是您的用户模型。
$product->createRating($rating, $author)
可选地,您还可以为评分发表评论。这可以通过一个名为 $body
的第三个字符串变量来完成。
$product->createRating($rating, $author, $body)
创建评论方法
一旦创建评分,您可能想作为Web应用程序的所有者对评分做出回应。这可以通过使用 createComment()
方法来完成。该方法接受两个变量:$author
和 $body
。
$rating->createComment($author, $body)
计算
当然,您可能想显示有关模型评分的一些数据。此包提供了三种方法来实现这一点
$product->averageRating(); $product->averageRatingAsPercentage(); $product->sumRating();
数据也可以作为 访问器 使用。您可以通过以下方式访问数据:
$product->average_rating $product->average_rating_as_percentage $product->sum_rating
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。