从 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-&gt;getErrorMessages() 得到错误,但如果测试print_r($form-&gt;gerErrors()) 则会出现错误

Array
(
    [email] => Array
        (
            [0] => isEmpty
        )

    [password] => Array
        (
            [0] => isEmpty
        )

    [foreign] => Array
        (
        )

    [login] => Array
        (
        )

)

所以,我的问题是:

a) 如何获取表单的所有错误消息?

b) 是否有任何 Json Wrapper 用于响应 ajax 提交的表单?例如$jsonResponse-&gt;setErrorStatus()-&gt;addFormErrors($form)

【问题讨论】:

你试过getMessages()吗?我认为这是您希望用来获取人性化错误消息的方法。 @bububaba,是的,我试过了,但它返回空数组,但$form-&gt;getErrors() 返回带有验证码的数组​​(如isEmpty)(见上文)。 你写道你已经尝试过getErrorMessagesgetErrors,但getMessages 是完全不同的野兽,这就是为什么我要问你是否尝试过。 getErrors 返回代码,getErrorMessages 返回注册的自定义错误消息(您似乎没有),而 getMessages 返回实际的人性化错误消息。我将此作为答案发布,请检查一下:) 【参考方案1】:

你试过getMessages吗?我认为这是您希望用来获取人性化错误消息的方法。

您写道您尝试过getErrorMessagesgetErrors,但getMessages 完全不同,这就是为什么我要问您是否尝试过。

getErrors 返回代码,getErrorMessages 返回注册的自定义错误消息(您似乎没有),而getMessages 返回实际的人性化错误消息。

【讨论】:

以上是关于从 Zend_Form 获取错误消息并作为 json 响应的主要内容,如果未能解决你的问题,请参考以下文章

从服务器获取错误作为“消息”:“意外的令牌 d”

PHP 在Zend_Form中显示错误

接收消息作为输入并从用户那里获取间隔值

从远程数据库中获取并存储到本地 django

如何从后端路由器获取错误消息?

从 Python 多处理中的排队进程获取错误标志/消息