route('static_page')); } /** * Prepare the data for validation. * * @return void */ public function prepareForValidation(): void { $this->merge([ 'content' => (empty(Str::of($this->input('content'))->value())) ? null : Str::of($this->input('content'))->value() ]); $this->mergePicture('picture'); } /** * Get the validation rules that apply to the request. * * @return array|string> */ public function rules(): array { $rules = [ 'seo_title' => 'required|min:45|max:70', 'seo_description' => 'required|min:50|max:160', 'title' => 'required|min:3|max:255', 'content' => 'sometimes|nullable', ]; if (request()->route()->parameters()['static_page']->type->containsContent()) { $rules = array_merge($rules, ['content' => 'required|string|min:15']); } if (request()->route()->parameters()['static_page']->type->containsBanner()) { $rules = array_merge( $rules, $this->pictureRules('picture', 1920, 1080, 1920, 1080, false), [ 'picture_alt' => 'required|string|between:3,255', 'picture_title' => 'required|string|between:3,255', ] ); } return $rules; } /** * Get custom attributes for validator errors. * * @return array */ public function attributes(): array { return [ 'seo_title' => trans('validation.custom.seo_title'), 'seo_description' => trans('validation.custom.seo_description'), 'title' => trans('validation.attributes.title'), 'content' => trans('validation.attributes.content'), 'picture' => trans('validation.custom.banner'), 'picture_alt' => trans('validation.custom.attribute_alt'), 'picture_title' => trans('validation.custom.attribute_title'), ]; } }