2009-12-20 79 views
3

我有我设置为所需的表单元素:如何在Zend_Form_Element上设置NotEmpty验证器的消息?

$this->addElement('text', 'email', array(
    'label'  => 'Email address:', 
    'required' => true 
)); 

由于我需要设置为true,它可以确保它不是空的。默认的错误信息是这样的:

"Value is required and can't be empty" 

我尝试设置在验证的消息,但是这将引发一个致命的错误:

$validator = $this->getElement('email')->getValidator('NotEmpty'); 
$validator->setMessage('Please enter your email address.'); 

Call to a member function setMessage() on a non-object

如何设置邮件到自定义错误信息?

回答

6

你需要重写/指定NotEmpty验证器,而不是使用默认的:

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

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

一点背景/解释/在你的代码中的注释,请 – kolossus 2012-12-01 19:26:11