如果我没有在输入过滤器中指定验证器,我在ZF3中如何自定义表单验证消息?
如果我使用ZF3 documentation中提供的代码,如下所示,'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,
],
],
],
];
答案 0 :(得分:3)
在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
验证器。