php – 使用Zend Action Helper ContextSwitch创建自定义JSON响应对象

我通常会将一个编码的json对象附加到响应主体,但是我现在有一种情况需要使用ContextSwitch动作帮助器.

我有一个Zend_Form需要三个不同的响应上下文:

> html – 将表单渲染为普通的html
在布局内.
> html-partial – 呈现的ajax“get”请求
只是形式为HTML.
> json – 返回的ajax“post”请求
任何形式的valiation错误消息.

对于每个上下文,我有3个视图脚本.虽然这两个html上下文可以使用相同的视图脚本,但我还没弄清楚这是否可行.

> form.phtml
> form.html.phtml
> form.json.phtml

html上下文视图可以正常工作,但json视图没有被选中.覆盖默认json post回调行为或将自定义编码对象传递给响应主体的最佳方法是什么?

最佳答案
就个人而言,我不使用“View”来生成JSON内容.
在我的init()中,我有这样的事情:

$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->setAutoJsonSerialization(false)
    ->addActionContext('index', array('html', 'json'))
    ->initContext();

在我的indexAction()中:

if ( true === $this->isAjaxJson() ) {
    $this->_helper->json(
        array(
            'response' => $myResponse,
            'message' => $myMesage
        )
    );
    return;
}

希望这有帮助.

转载注明原文:php – 使用Zend Action Helper ContextSwitch创建自定义JSON响应对象 - 代码日志