check(); } /** * Prepare the data for validation. * * @return void */ protected function prepareForValidation(): void { $this->merge([ 'published' => $this->input('published') ? true : false, 'brand_id' => $this->input('brand_id') ?: [], ]); } /** * Get the validation rules that apply to the request. * * @return array */ public function rules(): array { return [ 'first_name' => 'required|string|min:3|max:255', 'last_name' => 'required|string|min:3|max:255', 'email' => 'required|email:rfc,strict,dns,spoof,filter|unique:users,email', 'role' => ['required', new Enum(RoleEnum::class)], 'published' => 'required|boolean', 'brand_id' => 'present|array', 'brand_id.*' => 'sometimes|nullable|array', 'brand_id.*.id' => 'sometimes|nullable|numeric|exists:brands,id', ]; } /** * Get custom attributes for validator errors. * * @return array */ public function attributes(): array { return [ 'first_name' => trans('validation.attributes.first_name'), 'last_name' => trans('validation.attributes.last_name'), 'email' => trans('validation.attributes.email'), 'role' => trans('validation.attributes.role'), 'published' => trans('validation.custom.publication'), 'brand_id' => trans('models.classes.brands'), 'brand_id.*' => trans('models.classes.brands'), 'brand_id.*.id' => trans('models.classes.brands'), ]; } }