Как настроить сообщения проверки формы в ZF3

Где мне настроить сообщения проверки формы в ZF3, если я не указываю валидатор в своем входном фильтре?

Если я использую код, представленный в документации ZF3, как показано ниже, параметр 'required' => true, заставит помощника formElementErrors() отображать сообщение "Value is required and can't be empty" при проверке формы, если ввод остается пустым. Я хотел бы изменить это сообщение, но не знаю, где его изменить. Я знаю, что если я определяю валидатор во входном фильтре, я могу настроить там сообщения для определяемого мной валидатора. Но если я оставлю 'validators' => [],, как показано в примере с ZF3, где будут определены сообщения?

return [
    'input_filter_specs' => [
        'foobar' => [
            [
                'name' => 'name',
                'required' => true,
                'filters' => [
                    [
                        'name' => 'Zend\Filter\StringTrim',
                        'options' => [],
                    ],
                ],
                'validators' => [],
                'description' => 'Hello to name',
                'allow_empty' => false,
                'continue_if_empty' => false,
            ],
        ],
    ],
];

person jcropp    schedule 24.04.2018    source источник


Ответы (1)


В классе Zend\InputFilter\Input в методе prepareRequiredValidationFailureMessage валидатор NotEmpty автоматически присоединяется к цепочке валидаторов элемента, если элемент требуется и если он еще не присутствует. Это означает, что вы можете сами определить сообщение об ошибке, если прикрепите NotEmpty валидатор в конфигурации входного фильтра. Стандартное сообщение определено в NotEmpty валидаторе как NotEmpty::IS_EMPTY константа.

return [
    'input_filter_specs' => [
        'foobar' => [
            [
                'name' => 'name',
                'required' => true,
                'filters' => [
                    [
                        'name' => StringTrim::class,
                        'options' => [],
                    ],
                ],
                'validators' => [
                    [
                        'name' => NotEmpty::class,
                        'options' => [
                            'messages' => [
                                NotEmpty::IS_EMPTY => 'Your message here',
                            ],
                        ],
                    ],
                ],
                'allow_empty' => false,
                'continue_if_empty' => false,
            ],
        ],
    ],

];

В параметрах валидатора NotEmpty вы можете определить сообщения, которые должны отображаться при сбое.

Другим способом может быть переводчик валидатора NotEmpty. Если вы используете перевод для своего приложения, вы можете установить свою индивидуальную фразу для сообщения об ошибке. В этом случае вам не нужно упоминать валидатор NotEmpty в спецификации входного фильтра.

person Marcel    schedule 24.04.2018