0

我可以使用以下方法来覆盖 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 表单元素时,有没有办法覆盖所有错误消息?

4

3 回答 3

0

我没有尝试过,但我认为你可以这样做:

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

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

于 2012-12-31T20:46:36.913 回答
0

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

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

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

于 2013-02-13T09:25:47.180 回答
0

There is no way to override ALL error messages

于 2013-01-31T15:29:05.447 回答