阅读(3544)
赞(9)
Laravel 8 标记通知已读
2021-07-06 09:24:54 更新
通常,在用户阅览一条通知之后,你会想将其标识为「已读」。 Illuminate\Notifications\Notifiable
trait 提供了 markAsRead
方法,它更新数据库中通知记录的 read_at
列:
$user = App\Models\User::find(1);
foreach ($user->unreadNotifications as $notification) {
$notification->markAsRead();
}
当然,您亦可在通知集合上使用 markAsRead
方法来代替遍历通知:
$user->unreadNotifications->markAsRead();
您亦可通过大规模更新查询(不指定 where 条件的更新)来将所有通知标记为已读,而不必将其从数据库检索出来:
$user = App\Models\User::find(1);
$user->unreadNotifications()->update(['read_at' => now()]);
您也可以使用 delete
方法来将其从数据库实体中删除:
$user->notifications()->delete();