我在laravel应用中创建了数据库通知, 但是如何从中删除行。
表格:通知
id |类型notifiable_id | notifiable_type |数据read_at | created_at | Updated_at
id = 6f4ec6c2-ac98-4c35-99fe-2eb0559b2aed
type = App\Notifications\NewTicket
notifiable_id= 3
notifiable_type= App\User
data = {"user_name":"admin","ticket_title":"How to ...","ticket_id":7}
read_at = NULL
created_at = 2019-04-20
updated_at = 2019-04-20
我尝试
DB::table('notifications')
->where('data->ticket_id',$id)->get()->first()->delete();
不删除,
然后尝试
DB::table('notifications')
->whereRaw("JSON_EXTRACT(`data`, '$.ticket_id') = ?", $id)->get()->first()->delete();
不删除,
如何通过ticket_id删除上面的行
任何帮助将不胜感激。
答案 0 :(得分:1)
使用此
->whereJsonContains('data', ['ticket_id' => $id])->first()->delete();
答案 1 :(得分:0)
您可以删除以下行
DB::table('notifications')->where('id', $id)->delete();
答案 2 :(得分:0)
尝试通过json字段进行删除:
DB::table('notifications')
->where('data->ticket_id', $id)->delete();