panoscape / remarks
Laravel 的 Eloquent 模型喜欢和不喜欢功能
1.0.0
2016-11-23 10:28 UTC
Requires
- illuminate/support: ^5.3
This package is not auto-updated.
Last update: 2024-09-14 19:31:26 UTC
README
Laravel 的 Eloquent 模型喜欢和不喜欢功能
安装
Composer
composer require panoscape/remarks
服务提供者
config/app.php
'providers' => [ ... Panoscape\Remarks\RemarksServiceProvider::class, ];
外观
config/app.php
'aliases' => [ ... 'Remarks' => Panoscape\Remarks\Facades\Remarks::class, ];
Remark
config/app.php
'aliases' => [ ... 'App\Remark' => Panoscape\Remarks\Remark::class, ];
迁移
php artisan vendor:publish --provider="Panoscape\Remarks\RemarksServiceProvider" --tag=migrations
在迁移之前,您需要修改已发布的迁移文件中的 users
表,以使用应用程序中正确的用户表
//TODO: users table $table->foreign('user_id')->references('id')->on('user')->onDelete('cascade')->onUpdate('cascade');
使用方法
将 HasRemarks
特性添加到用户模型。
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Database\Eloquent\SoftDeletes; use Panoscape\Remarks\HasRemarks; class User extends Authenticatable { use Notifiable, SoftDeletes, HasRemarks; }
将 Remarkable
特性添加到可以进行评论的模型。
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Panoscape\Remarks\Remarkable; class Article extends Model { use Remarkable; }
获取用户的评论
//get all remarks $user->remakrs(); //or dynamic property $user->remarks; //get all likes $user->likes(); //get all dislikes $user->dislikes();
获取可评论对象的评论
//get all remarks $remarkable->remarks(); //or dynamic property $remarkable->remarks; //get all likes $remarkable->likes(); //get all dislikes $remarkable->dislikes();
检查评论
//check if a remarkable is liked by current user $remarkable->liked(); //or dynamic property $remarkable->liked; //check if a remarkable is liked by a specific user $remarkable->liked($user); //same with dislike and remark $remarkable->disliked(); $remarkable->disliked($user); $remarkable->remarked($user); $remarkable->remarked(); //check if a user likes a specific remarkable $user->liked($remarkable); //check if a user dislikes a specific remarkable $user->disliked($remarkable); //check if a user dislikes/likes a specific remarkable $user->remarked($remarkable); //count $remarkable->likesCount; $remarkable->dislikesCount; $remarkable->remarksCount; $user->likesCount; $user->dislikesCount; $user->remarksCount;
添加/删除/清除评论
//add a like for model by current user $remarkable->like(); //add a like for model by the given user $remarkable->like($user); //remove a like from this record for current user $remarkable->unlike(); //remove a like from this record for the given user $remarkable->unlike($user); //clear likes $remarkable->clearLikes(); //same with dislike $remarkable->dislike(); $remarkable->dislike($user); $remarkable->undislike(); $remarkable->undislike($user); $remarkable->clearDislikes(); $remarkable->clearRemarks(); //on user $user->like($remarkable); $user->unlike($remarkable); $user->dislike($remarkable); $user->undislike($remarkable); $user->clearLikes(); $user->clearDislikes(); $user->clearRemarks(); //toggle $remarkable->toggleLike(); $remarkable->toggleLike($user); $remarkable->toggleDislike(); $remarkable->toggleDislike($user); $user->toggleLike($remarkable); $user->toggleDislike($remarkable);
范围
//query builder $remarkable->whereLikedBy($user); $remarkable->whereLikedBy(); $remarkable->whereDislikedBy($user); $remarkable->whereDislikedBy(); $remarkable->whereRemarkedBy($user); $remarkable->whereRemarkedBy();
Remark
//get the remarkable model $remark->model(); //or dynamic property $remark->model; //get the user $remark->user(); //or dynamic property $remark->user;
评论
use Panoscape\Remarks\Facades\Remarks; ... ///add remark Remarks::add($remarkable, Remark::LIKE, $user); //remove Remarks::remove($remarkable, Remark::LIKE, $user); //toggle Remarks::toggle($remarkable, Remark::LIKE, $user); //check Remarks::has($remarkable, Remark::LIKE, $user); //clear Remarks::clearByModel($remarkable, Remark::ALL);