如何在laravel中通过“ ticket_id”从表通知中删除

时间:2019-04-21 15:46:39

标签: php laravel

很抱歉,我无法从通知表中删除行, 请帮忙

  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';
}

我尝试删除的代码中的每条注释,但无效 不要给我带来问题,但不能删除。

1 个答案:

答案 0 :(得分:1)

您需要首先检索模型实例。您正在尝试删除未提取查询的结果。您首先需要->get()结果,然后选择一个(在这种情况下,这是第一个也是唯一的)->first()

NewTicket::where('ticket_id', $id)->get()->first()->delete();

这就是为什么您的最后一个查询(Tickets::find($id)->delete();)起作用的原因-您正在删除由find()返回的模型实例。

查看更多:What is the difference between find(), findOrFail(), first(), firstOrFail(), get(), list(), toArray()