check(); } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { $responsesIds = $this->sondage->reponseSondages()->pluck('id')->all(); switch ($this->sondage->type) { case TypeSondage::radio(): case TypeSondage::checkbox(): return [ 'reponses' => 'required|array', 'reponses.*' => [ 'required', 'numeric', 'exists:reponse_sondages,id', // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed function ($attribute, $value, $fail) use ($responsesIds) { if (!in_array($value, $responsesIds)) { $fail(trans('Une des réponses fournis ne fait pas partie du sondage')); } } ] ]; default: abort(500, 'Type de sondage non géré'); } } }