Php 如何在Zend_Form_元素上设置NotEmpty验证器的消息?

Php 如何在Zend_Form_元素上设置NotEmpty验证器的消息?,php,zend-framework,zend-form,Php,Zend Framework,Zend Form,我有一个按要求设置的表单元素: $this->addElement('text', 'email', array( 'label' => 'Email address:', 'required' => true )); 因为我将required设置为true,所以它确保它不是空的。默认错误消息如下所示: "Value is required and can't be empty" 我尝试在验证器上设置消息,但这会引发一个致命错误: $valid

我有一个按要求设置的表单元素:

$this->addElement('text', 'email', array(
    'label'      => 'Email address:',
    'required'   => true
));
因为我将required设置为true,所以它确保它不是空的。默认错误消息如下所示:

"Value is required and can't be empty"
我尝试在验证器上设置消息,但这会引发一个致命错误:

$validator = $this->getElement('email')->getValidator('NotEmpty');
$validator->setMessage('Please enter your email address.');
对非对象调用成员函数setMessage()


如何将消息设置为自定义错误消息?

您需要覆盖/指定NoteEmpty验证程序,而不是使用默认验证程序:

$this->addElement('text', 'email', array(
    'label'      => 'Email address:',
    'required'   => true,
    'validators' => array (
       'NotEmpty' => array (
          'validator' => 'NotEmpty',
          'options' => array (
              'messages' => 'YOUR CUSTOM ERROR MESSAGE'
          )
       )
    )
));
$neValidator = new Zend_Validate_NotEmpty();
$neValidator->setMessage('Please enter your email address.');

$textElement = new Zend_Form_Element_Text('email');
$textElement->addValidator($neValidator);