从Controller设置Zend \ Form错误消息

时间:2012-10-15 13:28:01

标签: zend-form zend-framework2

这可能是一项非常简单的任务,但目前我对此非常失败。我只想在身份验证失败时向表单添加自定义错误。

我尝试了什么

$form->setMessages(array(
    array('password' => $this->failedLoginMessage)
));    

意外结果

\Zend\Debug\Debug::dump($form->getMessages());
array(0) {}

如果我正确理解了代码,则应将错误消息附加到密码元素。实际上看着setMessages,我认为附加一个单维数组应该已经足够了,但它也需要第二维:S我只是坚持这个简单的任务,感叹:)

提前致谢!

3 个答案:

答案 0 :(得分:14)

我的评论作为答案,正如您所要求的那样:

您还可以使用以下方法直接将错误消息设置为元素

$form->get('elemName')->setMessages(array('message1', 'message2', ...));

答案 1 :(得分:1)

简单的解决方案,正确阅读代码......正确使用如下:

$form->setMessages(array(
    'formElementName' => array(
         // multiple error messages possible...
    )
));

答案 2 :(得分:1)

使用以下代码行。

$form->getElement('controlname')->setErrors(array('Your custom error'));

如果您的页面中没有显示消息,请检查zend表单中使用的removeDecorator方法。如果有使用addDecorator方法,则编写错误消息代码行。