我正在使用CakePHP 3.1并尝试渲染User
模型的json索引响应。我跟着CakePHP manual page并在目录index.ctp
下创建了src/Template/Users/json/
,但文件没有被控制器挂钩。我也试过src/View/Users
,但也没用。我应该指定要渲染的文件还是其他什么?在src/Controller/UsersController.php
中,我使用index()
方法
$ users = $ this-> paginate('Users'); $这 - >设置(紧凑( '用户'));
答案 0 :(得分:2)
检查AppController.php
。从版本3.1.0开始,默认情况下将_serialize
设置为true。因此,模板文件都被忽略。
public function beforeRender(Event $event)
{
if (!array_key_exists('_serialize', $this->viewVars) &&
in_array($this->response->type(), ['application/json', 'application/xml'])
) {
$this->set('_serialize', true);
}
}
您需要从beforeRender
删除该代码。