2009-12-20 7 views
3

J'ai un élément de forme que je suis mise au besoin:Comment définir le message du validateur NotEmpty sur un Zend_Form_Element?

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

Depuis que je suis obligé de réglage vrai, il est certain que ce n'est pas vide. Le message d'erreur par défaut ressemble à ceci:

"Value is required and can't be empty" 

J'essayé de placer le message sur le validateur, mais cela jette une erreur fatale:

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

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

Comment puis-je mettre le message à une coutume Message d'erreur?

Répondre

6

Vous devez remplacer/spécifier le NotEmpty-validateur au lieu d'utiliser la valeur par défaut un:

$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

Un peu d'histoire/explication/commentaires sur votre code s'il vous plaît – kolossus