question; /** @var \Illuminate\Database\Eloquent\Builder $answers */ $answers = Answer::query()->where('question_id', $questionModel->id); if ($request->search) { $this->searchQuery( $answers, $request->search, null, 'answer', ); } $this->sortQuery($answers); $searchFields = trans('Réponse'); $answerModels = $this->paginate($answers); return view('bo.pages.answers.index', compact('answerModels', 'questionModel', 'searchFields')); } /** * Show the form for creating a new resource. * * @param \Illuminate\Http\Request $request * @param \App\Models\Answer $answer * @return \Illuminate\Contracts\View\View */ public function create(Request $request, Answer $answer): \Illuminate\Contracts\View\View { /** @var \App\Models\Question $questionModel */ $questionModel = $request->question; return view('bo.pages.answers.create', [ 'answerModel' => $answer, 'questionModel' => $questionModel ]); } /** * Store a newly created resource in storage. * * @param \App\Http\Requests\Bo\Answers\StoreAnswerRequest $request * @return \Illuminate\Http\RedirectResponse */ public function store(StoreAnswerRequest $request): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request) { $answer = new Answer(); $answer->fill($request->validated()); if ($answer->saveOrFail()) { return redirect() ->route('bo.answers.edit', $answer) ->with('success', trans( ':model a été créé.', ['model' => Str::singular(trans('models.classes.answers'))] )); } return redirect() ->back() ->with('error', trans( ':model n\'a pas été créé.', ['model' => Str::singular(trans('models.classes.answers'))] )); }); } /** * Show the form for editing the specified resource. * * @param \App\Models\Question $question * @param \App\Models\Answer $answers * @return \Illuminate\Contracts\View\View */ public function edit(Question $question, Answer $answers): \Illuminate\Contracts\View\View { return view('bo.pages.answers.edit', [ 'answerModel' => $answers, 'questionModel' => $question ]); } /** * Update a spacific resource in storage. * * @param \App\Http\Requests\Bo\Answers\UpdateAnswerRequest $request * @param \App\Models\Question $question * @param \App\Models\Answer $answer * @return \Illuminate\Http\RedirectResponse */ public function update( UpdateAnswerRequest $request, Question $question, Answer $answer ): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request, $question, $answer) { $answer->fill($request->validated()); if ($answer->saveOrFail()) { return redirect() ->route('bo.questions.answers.edit', ['question' => $question, 'answer' => $answer]) ->with('success', trans( ':model a été mis à jour.', ['model' => Str::singular(trans('models.classes.answers'))] )); } return redirect() ->back() ->with('error', trans( ':model n\'a pas été mis à jour.', ['model' => Str::singular(trans('models.classes.answers'))] )); }); } /** * Remove the specified resource from storage. * * @param \App\Models\Question $question * @param \App\Models\Answer $answer * @return \Illuminate\Http\RedirectResponse */ public function destroy(Question $question, Answer $answer): \Illuminate\Http\RedirectResponse { if ($answer->deleteOrFail()) { return redirect()->route('bo.questions.answers.index', $question) ->with('success', trans( ':model a été supprimé.', ['model' => Str::singular(trans('models.classes.answers'))] )); } return redirect()->back() ->with('error', trans( ':model n\'a pas pu être supprimé.', ['model' => Str::singular(trans('models.classes.answers'))] )); } }