具有不同页码的多个分页器

Multiple paginator with different page number

我正在使用 CakePHP 2.5.x。在单个请求中,我调用了 paginate() 方法两次。在第一次通话中,我不需要 page 参数,因为我为此选择了所有记录。

对于 paginate() 的第二次调用,我根据 URL 中找到的 page 参数选择数据。

现在,关注的是:

http://localhost/xyz/home/get_data/page:1   //working fine
http://localhost/xyz/home/get_data/page:2   //throw 404 from first paginate()

第一次 paginate() 调用时省略 page 参数的好方法是什么。

P.S. 我对两个 paginate() 调用使用相同的 model

如果重复请指出。提前谢谢你。

我想出了解决问题的方法。以下是我第一次 paginate() 调用(实际问题存在的地方)

所遵循的步骤
  1. 我将 url 中的原始 page 参数保存在另一个变量中
//get original page number from request and set first page manually
$original_page_number = !empty($this->request->params['named']['page']) ? $this->request->params['named']['page'] : 1;
$this->request->params['named']['page'] = 1;
  1. 调用paginate()函数

  2. 将原始 page 参数重新分配给 request 对象

//set back to original page number
$this->request->params['named']['page'] = $original_page_number;

因为我在第一个 paginate() 调用中遇到问题,所以我只为那个调用省略了 page 参数。

希望对大家有所帮助!