Включите пользовательские сообщения об ошибках валидации в объект формы по элементам
У меня есть следующий код, который создает конкретный текстовый элемент:
$this->add([
'type' => 'text',
'name' => 'newpassword',
'attributes' => [
'id' => 'newpassword',
'class' => 'form-control'
],
'options' => [
'label' => 'Enter New User Password',
],
]);
И у меня есть следующий код, который производит мои определения входного фильтра:
$inputFilter->add([
'name' => 'newpassword',
'required' => true,
'filters' => [
['name' => 'StringTrim'],
['name' => 'StripTags']
],
'validators' => [
[
'name' => 'StringLength',
'options' => [
'min' => 6,
'max' => 256
],
]
],
]);
Я хочу добавить свои собственные сообщения. Вот как у них это есть в документации API:
$validator = new Zend\Validator\StringLength(array('min' => 8, 'max' => 12));
$validator->setMessages( array(
Zend\Validator\StringLength::TOO_SHORT =>
'The string \'%value%\' is too short',
Zend\Validator\StringLength::TOO_LONG =>
'The string \'%value%\' is too long'
));
Как мне включить мои пользовательские сообщения проверки в мой уже запрограммированный код?
ОБНОВИТЬ:
Я думаю, что именно здесь я найду успех, но не знаю, как это сделать:
$inputFilter->get('newpassword')->getValidatorChain()->
1 ответ
Используйте это: его messageTemplates
установить пользовательское сообщение
$inputFilter->add([
'name' => 'newpassword',
'required' => true,
'filters' => [
['name' => 'StringTrim'],
['name' => 'StripTags']
],
'validators' => [
[
'name' => 'StringLength',
'options' => [
'min' => 6,
'max' => 256,
'messageTemplates'=>array(
\Zend\Validator\StringLength::TOO_SHORT =>
'The string \'%value%\' is too short',
\Zend\Validator\StringLength::TOO_LONG =>
'The string \'%value%\' is too long'
)
],
]
],
]);