Zend Framework 1.12和'ContextSwitch'帮助器

时间:2013-07-31 08:58:46

标签: zend-framework context-switch

我正在编写REST api,并希望以JSON格式返回响应。所以,我读到了关于'ContextSwitch'的内容。但我无法将标题更改为'application / json'并将数据转换为json。

这是我的控制器的代码:

 public function preDispatch()
{

    $this->getRequest()->setParam('format', 'json');
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);
}


public function _init()
{

    $contextSwitch = $this->_helper->getHelper('contextSwitch');
    $contextSwitch ->addActionContext('post', 'json')
                    ->initContext('json');
}

public function postAction()
{
    echo 'test';

}

当我使用Curl命令行工具检查响应时,我收到了:

< Content-Length: 4
< Content-Type: text/html
< 
* Connection #0 to host localhost left intact
test* Closing connection #0

为什么标题和数据不会更改?我该如何解决?

2 个答案:

答案 0 :(得分:1)

看起来根本没有执行_init()方法。尝试将其重命名为init()

答案 1 :(得分:0)

我认为您的代码缺少调用上下文切换帮助程序的一些步骤

这里有一个工作示例供我使用上下文切换来休息api

只需抛出this API example并使您的脚本正常工作

希望这对您有所帮助。