У меня есть форма вместе с фильтрами и валидаторами, которые работают корректно.Zend Form Validation error error
Однако я не могу заставить пользовательские сообщения об ошибках работать. До сих пор я пытался.
$inputFilter->add(array(
'name' => 'message',
'required' => TRUE,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' => 'NotEmpty',
'messages' => array(
NotEmpty::IS_EMPTY => "You must specify your message",
),
),
),
));
Все, что я получаю это стандартная ошибка проверки сообщения «Значение является обязательным и не может быть пустым»
Пожалуйста, может кто-то мне точку в правильном направлении, большое спасибо.
Я думаю, что правильный ключ 'messageTemplates '. 'messages' содержит ошибки, которые уже произошли, тогда как' messageTemplates' устанавливает шаблон для использования, когда вызывается метод 'error' с определенным типом ошибки. ([См. Реализацию AbstractValidator :: createMessage] (https://github.com/zendframework/zf2/blob/master/library/Zend/Validator/AbstractValidator.php#L285)) –
Это интересно. Ваш аргумент кажется правильным. Я просто проследил поток до 'error()' и 'createMessage()' шагов внутри AbstractValidator не может понять, как это работает. Раньше я никогда не использовал ключ 'messageTemplates'. – edigu
Спасибо @foozy, ваш ответ сработал нормально, размещение сообщений по опциям сделало трюк. – Garry