user(); $newsClubModel = NewsClub::query() ->where('published', true) ->where('slug', $request->news_club_slug) ->first(); $customerSurveyAnswers = $customerModel->surveyAnswers ->filter(function ($surveyAnswer) use ($newsClubModel) { return $surveyAnswer->newsClub->getKey() === $newsClubModel->getKey(); }); return view('club.pages.surveys.show', compact('newsClubModel', 'customerSurveyAnswers')); } /** * Store answers from a club customer. * * @param \App\Http\Requests\Club\Surveys\StoreSurveyAnswerRequest $request * @return \Illuminate\Http\RedirectResponse */ public function store(StoreSurveyAnswerRequest $request): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request) { /** @var \App\Models\Customer $customerModel */ $customerModel = auth('club')->user(); $newsClubModel = NewsClub::query() ->where('published', true) ->where('id', $request->validated()['news_club_id']) ->first(); $customerModel->surveyAnswers()->sync(collect($request->validated()['answers'])); return redirect()->route('club.news.show', $newsClubModel->slug) ->with('success', trans('Votre réponse à bien été enregistrée !')); }); } }