mhndev / yii2-rate
Yii2 多用途评分系统(支持点赞、踩、用其他数字或文字评分)
0.0.5
2016-10-09 19:51 UTC
Requires
- php: >=5.4.0
- mhndev/rate: 1.*
- yiisoft/yii2: >=2.0.5
This package is auto-updated.
Last update: 2024-09-06 09:07:12 UTC
README
目录
Yii2 多用途评分系统(支持点赞、踩、用其他数字或文字评分)
安装
Composer
安装此扩展的最佳方式是通过 composer。
运行以下命令之一:
composer require --prefer-dist mhndev/yii2-rate "0.0.*"
或添加
"mhndev/yii2-rate": "0.0.*"
配置
创建配置文件
然后在您的yii2项目配置目录中创建一个名为 rate.php 的配置文件,并填写以下内容
return [ 'userClass' => \app\models\User::class, 'RateClass' => \mhndev\yii2Rate\Models\Rate::class, 'items'=>[ 'post' => [ 'class'=> \app\models\Post::class, 'rate_types' => ['rate','like'], 'rate_values' => [ 'class' => \mhndev\rate\DiscreteNumberValue::class, 'values' => ['1','2','3','4','5'] ] ] ] ];
查看配置数组,并检查 items 字段是否为要评分或点赞的实体。例如,上面的配置数组中有一个名为 post 的项目。它的字段是
class
指定要评分的实体类
rate_types
您可以为实体拥有多种评分方式,例如,用户可以点赞一个帖子实体并对其进行评分
rate_values
您可以指定实体的可能评分值
之后,您的用户类应实现以下接口
mhndev\rate\Interfaces\iUser
并添加以下方法以实现评分功能持久化。您可以根据项目需求进行更改。
/** * @param $value * @param iRateableEntity $entity * @param $type * @return Rate */ public function doRate($value, iRateableEntity $entity, $type) { $rate = new Rate; $rate->type = $type; $rate->entity = get_class($entity); $rate->entity_id = $entity->_id->__toString(); $rate->owner = static::class; $rate->owner_id = Yii::$app->user->identity->id; $rate->value = $value; $rate->save(); return $rate; }
使用
点赞
以下是一个使用此包的示例代码
$post = Post::findOne(1); $user = Yii::$app->user->identity; $user->like($post);
评分
$post = Post::findOne(1); $user = Yii::$app->user->identity; $user->rate(+2, $post, 'rate');