我有一个带有username元素的表单。有两个验证器:NotEmptyStringLengthStringLength的自定义错误消息正在运行,但是以某种方式它没有将NotEmpty验证程序使用自定义错误消息。在ZF1中,在制作可能需要关闭的元素时会自动添加notEmpty验证器。我在ZF2中找不到这样的选项,也许未使用我的NotEmpty验证器,因为它已经由必需的标志添加了!

    $inputFilter->add($factory->createInput(array(
        'name'     => 'username',
        'required' => true,
        'filters'  => array(
            array(
                'name' => 'StringTrim'
            ),
        ),
        'validators' => array(
            array(
                'name' => 'NotEmpty',
                'options' => array(
                    'messages' => array(
                        NotEmpty::IS_EMPTY => 'Bitte geben Sie Ihren Benutzernamen ein.',
                    ),
                ),
            ),
            array(
                'name' => 'StringLength',
                'options' => array(
                    'min' => 3,
                    'max' => 45,
                    'messages' => array(
                        StringLength::TOO_SHORT => 'Der Benutzername muss mindestens 3 Zeichene lang sein.',
                        StringLength::TOO_LONG => 'Der Benutzername darf maximal 45 Zeichen lang sein.',
                    )
                ),
            ),
        ),
    )));

最佳答案

默认情况下,ZF2表单会在创建不同表单元素时自动为其添加验证器。为了防止添加默认值并且仅显示您的验证器,您需要添加到表单构造函数中:

$ this-> setUseInputFilterDefaults(false);

这将防止Form对象添加那些默认验证器。现在,当您添加自己的NotEmpty或与此相关的任何其他元素,带有自定义消息的验证器时,将使用该消息而不是默认消息。

关于php - Zend Framework 2 : NotEmpty Validator Message,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12004270/

10-10 20:24