过滤“通知”表“数据”字段中的通知 - Laravel

问题描述 投票:2回答:2

这是默认的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数据类型。

laravel notifications laravel-5.3
2个回答
2
投票

根据laravel 5.6:JSON Where Clauses

并使用MySQL 5.7

我希望这个答案可以帮到你


1
投票

我想,您可以创建自己的频道,(另请参阅Illuminate \ Notifications \ Channels \ DatabaseChannel),您可以在其中覆盖send()方法,以保存通知。在此之前,您可以编写迁移以更新“通知”表以添加自定义筛选字段。见:https://laravel.com/docs/5.5/notifications#custom-channels

对不起我的英语不好。希望,你会明白的。

© www.soinside.com 2019 - 2024. All rights reserved.