在Cakephp 3.3中为json响应添加分页值

时间:2016-10-24 18:53:34

标签: json pagination cakephp-3.0

我正在尝试将分页数量的页面添加到Cakephp 3.3的json响应中。我按照Cakephp 3.3文档使用paginator方法进行查询并激活了json扩展,您只需将.json添加到控制器的末尾,并获取json响应的函数。我得到的结果是分页的第一页,但是我想在之前添加一个参数,告诉我有多少页被分页,这样我就可以显示还有多少页可以继续。我试图得到的json响应的示例如下,其中pages是paginator值:

    { pages: [pages:5],
      clients: [
     {
       id: 1,
       first_name: "Kirby",
       last_name: "Bonner"
     }]
    }

我多次被告知要查看文档,但说实话,我没有看到我在这里尝试做什么的明确解释。如果有人能指导我做一个明确解释如何做到这一点的示例或文档,我真的很感激。谢谢。

1 个答案:

答案 0 :(得分:1)

我在http://florian-kraemer.net/2015/10/cakephp-angularjs-pagination/

找到了问题的答案

但是,在完成查询后,您必须对分页进行验证,否则它将始终返回false;

以下是代码示例:

    public function index() {

    $query = $this->Table->find();
    if (empty($this->request->params['paging'][$this->Table->alias()])) {
       $paging = false;
    } else {
       $paging = $this->request->params['paging'][$this->Table->alias()];
    }
    $this->set('records', $this->paginate($query));
    $this->set('paging', $paging);
    $this->set('_serialize', ['records', 'paging']);
    }