这是默认的laravel notifications
data
字段
{
"type":"Update Appointment",
"appointment_id":"379",
"date":null,
"updated_by":"Mahir",
"status":"2"
}
在controller
我希望获得status = 2
的所有通知并标记为已读
Laravel 5.3 doc显示
$user = App\User::find(1);
foreach ($user->unreadNotifications as $notification) {
$notification->markAsRead();
}
如何修改此功能以使用status = 2
更新:寻找类似的东西
$noti = $user->unreadNotifications->where('data->status',"2");
注意:我的数据库不支持json
数据类型。
答案 0 :(得分:2)
答案 1 :(得分:1)
我认为,您可以创建自己的频道,(另请参阅Illuminate \ Notifications \ Channels \ DatabaseChannel),您可以在其中覆盖send()方法,以保存通知。在此之前,您可以编写迁移以更新“通知”表以添加自定义筛选字段。 请参阅:https://laravel.com/docs/5.5/notifications#custom-channels
抱歉我的英文。希望,你会明白的。
答案 2 :(得分:1)
$user = $user->unreadNotifications->where('data.complaint_id',1);
它对我来说很好用,希望对你有帮助。