mosamy / seenable
Laravel 包,用于处理翻译问题的烦恼。
1.0.2
2023-04-25 00:58 UTC
Requires
- php: >=8.1
This package is auto-updated.
Last update: 2024-09-25 03:49:58 UTC
README
监控记录是否被查看以及查看者是谁
安装
composer require mosamy/seenable
php artisan migrate
用法
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Message extends Model
{
use \Mosamy\Seenable\Seenable;
}
要检测消息是否被查看,只需检查 is_seen 属性
$message = Message::find(1);
echo $message->is_seen; //boolean
markAsSeen()
标记记录为已查看。
$message = Message::find(1);
$message->markAsSeen();
markAsUnseen()
标记记录为未查看。
$message = Message::find(1);
$message->markAsUnseen();
views
获取查看记录的用户列表。如果您计划在列表中使用此功能,不要忘记使用 with('views') 预加载此功能。
$message = Message::find(1);
$views = $message->views;
foreach($views as $view){
echo $views->seener;
}
seenBy()
获取特定用户类型 (模型类名) 查看过的记录。
$message = Message::seenBy(App\Models\Admin::class)->get();
// specifiy a user id
$message = Message::seenBy(App\Models\Admin::class, 1)->get();
seenByMe()
获取当前登录用户查看过的记录。
$message = Message::seenByMe()->get();
haventSeenBy()
获取特定用户类型 (模型类名) 未查看过的记录。
$message = Message::haventSeenBy(App\Models\Admin::class)->get();
// specifiy a user id
$message = Message::haventSeenBy(App\Models\Admin::class, 1)->get();
haventSeenByMe()
获取当前登录用户未查看过的记录。
$message = Message::haventSeenByMe()->get();
orderBySeen()
按已查看顺序排序记录。
$message = Message::orderBySeen()->get();
orderByUnseen()
按未查看顺序排序记录。
$message = Message::orderByUnseen()->get();