jorgejardim/reviewrateable

Laravel 5 的评分系统

1.0.0 2020-07-08 04:52 UTC

This package is auto-updated.

Last update: 2024-09-08 14:09:32 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Laravel ReviewRateable

trexology/reviewrateable 提供的 Laravel ReviewRateable 评分系统

安装

首先,通过 Composer 引入包。

composer require jorgejardim/reviewrateable

然后,在 app/config/app.php 中包含服务提供者。(如果使用 Laravel 5.5 或更高版本,则跳过此步骤)

'providers' => [
    Trexology\ReviewRateable\ReviewRateableServiceProvider::class
];

最后,您需要发布并运行迁移。

php artisan vendor:publish --provider="Trexology\ReviewRateable\ReviewRateableServiceProvider" && php artisan migrate

设置模型

<?php

namespace App;

use Trexology\ReviewRateable\Contracts\ReviewRateable;
use Trexology\ReviewRateable\Traits\ReviewRateable as ReviewRateableTrait;
use Illuminate\Database\Eloquent\Model;

class Post extends Model implements ReviewRateable
{
    use ReviewRateableTrait;
}

创建评分

$user = User::first();
$post = Post::first();

$rating = $post->rating([
    'title' => 'Some title',
    'body' => 'Some body', //optional
    'anonymous' => 1, //optional
    'rating' => 5,
], $user);

dd($rating);

更新评分

$rating = $post->updateRating(1, [
    'title' => 'new title',
    'body' => 'new body', //optional
    'anonymous' => 1, //optional
    'rating' => 3,
]);

删除评分

$post->deleteRating(1);

获取平均评分

$post->averageRating()

$post->averageRating(2) //round to 2 decimal place

统计总评分

$post->countRating()

统计评分元数据(计数和平均值)

$post->ratingMeta()

$post->ratingMeta(2) //round to 2 decimal place

获取评分百分比。

这也是如何强制执行最大评分值的方法。

$post->ratingPercent()

$post->ratingPercent(10)); // Ten star rating system
// Note: The value passed in is treated as the maximum allowed value.
// This defaults to 5 so it can be called without passing a value as well.