Как настроить сообщения проверки формы в ZF3 - PullRequest
0 голосов
/ 24 апреля 2018

Где я могу настроить сообщения проверки формы в 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,
            ],
        ],
    ],
];

1 Ответ

0 голосов
/ 25 апреля 2018

В классе 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 в спецификации входного фильтра.

...