Zend_Form -> Nicely change setRequired() validate message Zend_Form -> Nicely change setRequired() validate message php php

Zend_Form -> Nicely change setRequired() validate message


An easier way to set this "site-wide" would be to possibly do the following in a bootstrap or maybe a base zend_controller:

<?php    $translateValidators = array(                        Zend_Validate_NotEmpty::IS_EMPTY => 'Value must be entered',                        Zend_Validate_Regex::NOT_MATCH => 'Invalid value entered',                        Zend_Validate_StringLength::TOO_SHORT => 'Value cannot be less than %min% characters',                        Zend_Validate_StringLength::TOO_LONG => 'Value cannot be longer than %max% characters',                        Zend_Validate_EmailAddress::INVALID => 'Invalid e-mail address'                    );    $translator = new Zend_Translate('array', $translateValidators);    Zend_Validate_Abstract::setDefaultTranslator($translator);?>


Give this a shot:

$firstName = new Zend_Form_Element_Text('firstName');$firstName->setLabel('First Name')          ->setRequired(true)          ->addValidator('NotEmpty', true)          ->addErrorMessage('Value is empty, but a non-empty value is required.');

The key is that "true" on the validator if you set that to true, it'll kill the other validations after it. If you add more than one validation method, but set that to false, it will validate all methods.


Zend_Form sets the required validation error as 'isEmpty', so you can override its message using setErrorMessages(). For example:

//Your Required Element$element->setRequired(true)->setErrorMessages(array('isEmpty'=>'Please fill this field'));

It worked for me, using ZF 1.11