public function delete(Request $request, $id) { $qcm = Qcm::where('id', $id)->with('user', 'questions')->first(); if (Auth::id() == $qcm->user->id) { $ret = DB::transaction(function () use($qcm) { foreach ($qcm->participations as $participation) { $participation->delete(); } foreach ($qcm->questions as $question) { foreach ($question->answers as $answer) { $answer->delete(); } $question->delete(); } $qcm->delete(); return true; }); if ($ret) { Session::push('messages', 'success|Le QCM a bien été supprimé'); } else { Session::push('messages', "danger|Le QCM n'a pas été supprimé"); } return redirect(route('qcm::mine')); } else { Session::push('messages', 'danger|Vous ne pouvez pas supprimer le QCM d\'un autre professeur'); Auth::logout(); return redirect(route('index')); } }