check(); } /** * Prepare the data for validation. * * @return void */ protected function prepareForValidation() { $this->merge([ 'display_video' => $this->boolean('display_video') ]); $this->mergePicture('picture'); } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { $rules = [ 'title_part1' => 'required|string|between:3,255', 'title_part2' => 'required|string|between:3,255', 'title_part3' => 'required|string|between:3,255', 'picture_alt' => 'required|string|between:3,255', 'picture_title' => 'required|string|between:3,255', 'presentation_title' => 'required|string|between:3,255', 'presentation_content' => 'required|string', 'display_video' => 'present|boolean', 'youtube_video_id' => [ 'nullable', 'required_if:display_video,true', new IsValidYoutubeId() ], ]; return \array_merge( $rules, $this->pictureRules('picture', 640, 390, 640, 390, true, requiredIf: 'display_video,false'), ); } /** * Get custom attributes for validator errors. * * @return array */ public function attributes(): array { return [ 'title_part1' => trans('validation.custom.title_part1'), 'title_part2' => trans('validation.custom.title_part2'), 'title_part3' => trans('validation.custom.title_part3'), 'picture_alt' => trans('validation.custom.picture_alt', [ 'field' => __('validation.custom.picture') ]), 'picture_title' => trans('validation.custom.picture_title', [ 'field' => __('validation.custom.picture') ]), 'presentation_title' => trans('validation.custom.presentation_title'), 'presentation_content' => trans('validation.custom.presentation_content'), ]; } }