如何覆盖表单元素的所有错误消息?

时间:2012-12-31 20:14:05

标签: zend-framework zend-form zend-form-element zend-validate

我可以使用以下方法覆盖zend表单元素的所有错误消息。

$name->setRequired( TRUE )
    ->setAttrib( 'id', 'fullname' )
    ->addErrorMessage( 'Please provide your name' );

但是,当我使用工厂模式创建表单元素时,我无法复制这一点 'errorMessage'键不起作用。

$this->addElement('text', 'city', array(
        'placeholder'   => 'City*',
        'required'      => true,
        'filters'       => array('StringTrim', 'StripTags'),
        'errorMessage'  => 'TEST',
        'validators'    => array(
            array('StringLength', false,
                array(3, 50, 
                    /*'messages' => array(
                        Zend_Validate_StringLength::TOO_SHORT => 'too short'
                    )*/
               )
            )
        ),
        'decorators'    => array('ViewHelper','Errors'),
    ));

我可以单独覆盖每个Zend错误消息(请参阅注释掉的代码),但这是一个非常繁琐的过程。

使用工厂模式创建ZF表单元素时,有没有办法覆盖所有错误消息?

3 个答案:

答案 0 :(得分:0)

我还没有尝试过,但我认为你可以做到:

'errorMessages'  => array('TEST'),

请注意,errorMessages是复数,并且您传入的是单元素数组而不是字符串。

答案 1 :(得分:0)

无法覆盖所有错误消息

答案 2 :(得分:0)

如果要更改错误消息,请在验证器定义时定义..

'validators' => array(
                    'NotEmpty', 
                    true, 
                    array( 'messages' => array( 'isEmpty' => "Please provide your name.") )

当此字段为空时,错误消息将为“请提供您的姓名。”。