zend validation messages -
consider following part of form
$name = new zend_form_element_text('name'); $name->setlabel('name: ') ->setrequired(true) ->addvalidator($empty) ->addvalidator($alpha) ->setdecorators($newdecorators); $this->addelement($name); i defined $empty , $alpha as:
$empty = new zend_validate_notempty(); $empty->setmessage('some text', zend_validate_notempty::is_empty); $alpha = new zend_validate_alpha(); $alpha->setmessage('some text',zend_validate_alpha::not_alpha); now question:
with code double validation message when input empty. first custom message , then: '' empty string when drop setrequired, empty validator not run. why this? don't want use setrequired, because if add errormessage setrequired, $alpha error message overwritten.
thx, j
this happens because default behaviour check against validators assigned element, if 1 of prior validations fails.
luckily quite easy prevent this: in addvalidator method can pass second parameter $breakchainonfailure stops further validation upon failure if set true.
so in example gave, need set second parameter true:
$name = new zend_form_element_text('name'); $name->setlabel('name: ') ->setrequired(true) ->addvalidator($empty, true) ->addvalidator($alpha, true) ->setdecorators($newdecorators); $this->addelement($name); and 1 error message displayed in case enter empty string.
for further information refer zend framework documentation on validator chains.
Comments
Post a Comment