Reputation: 16455
this is probably a very simple task, but currently I'm failing horribly at it. I just want to add a custom error to my form when my authentication fails.
What i tried
$form->setMessages(array(
array('password' => $this->failedLoginMessage)
));
Unexpected Result
\Zend\Debug\Debug::dump($form->getMessages());
array(0) {}
If i understand the code correctly this should attach an error message to the password element. Actually looking at the setMessages i thought attaching a single-dimension array should have been enough, but it needs the 2nd dimension, too :S I'm just stuck on that simple task, sigh :)
Thanks in advance!
Upvotes: 6
Views: 10891
Reputation: 525
Use this lines of code.
$form->getElement('controlname')->setErrors(array('Your custom error'));
in case the message not showing in your page check removeDecorator method used in zend form. if there is use addDecorator method befor writing error message code line.
Upvotes: 1
Reputation: 3379
My comment as answer, as you've requested:
You can also set error messages to an element directly, using:
$form->get('elemName')->setMessages(array('message1', 'message2', ...));
Upvotes: 14
Reputation: 16455
Simple solution, read the code correctly... Correct usage as following:
$form->setMessages(array(
'formElementName' => array(
// multiple error messages possible...
)
));
Upvotes: 1