mosamy/seenable

Laravel 包,用于处理翻译问题的烦恼。

1.0.2 2023-04-25 00:58 UTC

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();