我应该在哪里为CakePHP 3中的json视图创建模板?

时间:2015-10-07 13:48:01

标签: cakephp-3.1

我正在使用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');   $这 - >设置(紧凑( '用户'));

1 个答案:

答案 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删除该代码。

相关问题