merge([ 'is_published' => $this->boolean('is_published'), ]); } /** * @return array|string> */ public function rules(): array { return [ 'title' => ['required', 'string', 'max:120'], 'body' => ['required', 'string', 'max:20000'], 'sort_order' => ['required', 'integer', 'min:0', 'max:9999'], 'is_published' => ['nullable', 'boolean'], 'image' => ['nullable', 'image', 'max:10240'], ]; } /** * @return array */ public function messages(): array { return [ 'title.required' => __('Укажи заголовок новости.'), 'title.max' => __('Заголовок не должен быть длиннее 120 символов.'), 'body.required' => __('Заполни текст новости.'), 'body.max' => __('Текст новости слишком длинный.'), 'sort_order.required' => __('Укажи порядок вывода.'), 'sort_order.integer' => __('Порядок вывода должен быть числом.'), 'sort_order.min' => __('Порядок вывода не может быть отрицательным.'), 'sort_order.max' => __('Порядок вывода слишком большой.'), 'image.image' => __('Файл должен быть изображением.'), 'image.max' => __('Изображение не должно превышать 10 МБ.'), ]; } }