Собственные сообщения об ошибках валидации форм OctoberCMS
Во время разработки модели данных OctoberCMS при необходимости, можно использовать собственные сообщения об ошибках валидации полей формы вместо сообщения The :attribute field is required. по-умолчанию. В статье показывается как, достаточно просто, это делается.
Допустим у нас есть модель "Публикация". В ней присутствуют обязаетельные поля для заполнения: "Авторы" и "Название". Чтобы сделать автоматическую валидацию с собственными сообщениями об ошибках при сохранении записей в базу данных OctoberCMS необходимо в класс нашей модели добавить:
- Трейт \October\Rain\Database\Traits\Validation
- Свойство public $rules - массив, где ключом является поле базы данных, а его значеним правило валидации OctoberCMS.
- Свойство public $customMessages - массив, где ключом является поле базы данных и правило валидации через точку, а значеним ключа - собственные сообщение.
/**
* Publication Model
*/
class Publication extends Model
{
use \October\Rain\Database\Traits\Validation;
/**
* @var array Правила валидации для Traits\Validation
*/
public $rules = [
'authors' => 'required',
'title' => 'required'
];
/**
* @var array Массив собственных сообщений об ошибках
*/
public $customMessages = [
'authors.required' => 'Необходимо обязательно заполнить поле "Авторы".',
'title.required' => 'Необходимо обязательно заполнить поле "Название публикации".'
];
P.S. В официальной документаци October CMS в секции "Собственные сообщения при ошибках" на текущий момент указано устаревшее свойство $messages, вместо него необходимо использовать $customMessages потому, что в трейте \October\Rain\Database\Traits\Validation функция выглядит следующим образом.
protected static function makeValidator($data, $rules, $customMessages, $attributeNames, $connection = null)