agilepixels/laravel-rateable

一个用于为Eloquent模型添加评分的包

1.0.0 2019-04-24 15:06 UTC

This package is auto-updated.

Last update: 2024-09-25 06:43:56 UTC


README

Latest Version on Packagist Build Status StyleCI Quality Score Total Downloads

想象你想为Eloquent模型添加星级评分。此包为您启用此功能。评分可以是0到5颗星,+1/-1或您喜欢的任何其他范围。

此包提供 HasRatingsAddsRatings 特性,一旦安装到模型上,就可以执行如下操作:

// 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)。请参阅许可证文件以获取更多信息。