2009-12-20 77 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