【问题标题】:How to customize form validation messages in ZF3如何在 ZF3 中自定义表单验证消息
【发布时间】:2018-04-24 17:23:12
【问题描述】:

如果我没有在我的输入过滤器中指定验证器,我应该在 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,
            ],
        ],
    ],
];

【问题讨论】:

    标签: validation zend-framework3 zend-inputfilter


    【解决方案1】:

    prepareRequiredValidationFailureMessage 方法的Zend\InputFilter\Input 类中,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 验证器。

    【讨论】:

      猜你喜欢
      • 2011-12-28
      • 2012-11-01
      • 2014-09-06
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 2019-03-21
      相关资源
      最近更新 更多