很抱歉,我无法从通知表中删除行, 请帮忙
public function deleteTickets($id){
$ticket = Tickets::find($id);
$files = Files::where('ticket_id', $ticket->id)->get();
foreach ($files as $file){
Storage::delete($file->name);
}
Files::where('ticket_id', $ticket->id)->delete();
Replies::where('ticket_id', $ticket->id)->delete();
// NewTicket::where('ticket_id', $id)->delete();
//TicketReply::where('ticket_id', $id)->delete();
// TicketStatus::where('ticket_id', $id)->delete();
// DB::table('notifications')->whereRaw("JSON_EXTRACT(data, '$.ticket_id') = ?", $id )->delete();
Tickets::find($id)->delete();
return 'success';
}
我尝试删除的代码中的每条注释,但无效 不要给我带来问题,但不能删除。
答案 0 :(得分:1)
您需要首先检索模型实例。您正在尝试删除未提取查询的结果。您首先需要->get()
结果,然后选择一个(在这种情况下,这是第一个也是唯一的)->first()
。
NewTicket::where('ticket_id', $id)->get()->first()->delete();
这就是为什么您的最后一个查询(Tickets::find($id)->delete();
)起作用的原因-您正在删除由find()
返回的模型实例。