我正在编写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
为什么标题和数据不会更改?我该如何解决?
答案 0 :(得分:1)
看起来根本没有执行_init()
方法。尝试将其重命名为init()
。
答案 1 :(得分:0)