как удалить из таблицы уведомления по "ticket_id" в laravel - PullRequest
0 голосов
/ 21 апреля 2019

Извините, я просто не могу удалить строку из таблицы уведомлений, любую помощь, пожалуйста

  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 Ответ

1 голос
/ 21 апреля 2019

Сначала вам нужно получить экземпляр модели.Вы пытаетесь удалить результаты не полученного запроса.Сначала вам нужно ->get() результат (ы), а затем выбрать один (в данном случае это первый и единственный) ->first().

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

Вот почему последний из ваших запросов (Tickets::find($id)->delete();) работает - вы удаляете экземпляр модели, который возвращается find().

Подробнее: В чем разница между find (), findOrFail (), first (), firstOrFail (), get (), list (), toArray ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...