从 Zend_Form 获取错误消息并作为 json 响应
Posted
技术标签:
【中文标题】从 Zend_Form 获取错误消息并作为 json 响应【英文标题】:Get error messages from Zend_Form and response as json 【发布时间】:2012-07-29 03:57:11 【问题描述】:我正在尝试。获取 Zend_Form 错误并以 json 格式回复的最佳实践是什么?
<?
class SomeController extends Zend_Controller_Action
public function indexAction()
$form = new Application_SomeForm();
if ($form->isValid( $this->getRequest()->getPost() ))
//do something here
$this->_helper->json($form->getErrorMessages());
我无法通过$form->getErrorMessages()
得到错误,但如果测试print_r($form->gerErrors())
则会出现错误
Array
(
[email] => Array
(
[0] => isEmpty
)
[password] => Array
(
[0] => isEmpty
)
[foreign] => Array
(
)
[login] => Array
(
)
)
所以,我的问题是:
a) 如何获取表单的所有错误消息?
b) 是否有任何 Json Wrapper 用于响应 ajax 提交的表单?例如$jsonResponse->setErrorStatus()->addFormErrors($form)
【问题讨论】:
你试过getMessages()
吗?我认为这是您希望用来获取人性化错误消息的方法。
@bububaba,是的,我试过了,但它返回空数组,但$form->getErrors()
返回带有验证码的数组(如isEmpty
)(见上文)。
你写道你已经尝试过getErrorMessages
和getErrors
,但getMessages
是完全不同的野兽,这就是为什么我要问你是否尝试过。 getErrors
返回代码,getErrorMessages
返回注册的自定义错误消息(您似乎没有),而 getMessages
返回实际的人性化错误消息。我将此作为答案发布,请检查一下:)
【参考方案1】:
你试过getMessages
吗?我认为这是您希望用来获取人性化错误消息的方法。
您写道您尝试过getErrorMessages
和getErrors
,但getMessages
完全不同,这就是为什么我要问您是否尝试过。
getErrors
返回代码,getErrorMessages
返回注册的自定义错误消息(您似乎没有),而getMessages
返回实际的人性化错误消息。
【讨论】:
以上是关于从 Zend_Form 获取错误消息并作为 json 响应的主要内容,如果未能解决你的问题,请参考以下文章