【问题标题】:Set page number in cakephp pagination在cakephp分页中设置页码
【发布时间】:2012-05-14 12:59:56
【问题描述】:

我想在同一个模板上获得多个分页。我正在查询 2 个不同的模型以在模板文件文件的 2 个不同位置进行分页。正如您已经猜到的,如果我单击两个分页之一的下一页,两个模型都会获取下一页值。 我已经做了足够的研究并尝试了各种在线可用的解决方案,但没有一个奏效。可能我用对了。

我发现如果我能够静态设置页面,我就可以让它工作。

我想这样设置

'page'=>1

我知道我们可以这样设置。但是如果 url 中有一个参数,比如

...../page:2/....

它覆盖了我指定的值。无论通过 URL 发送什么,有没有办法获取我们提供的数字页面?

谢谢

【问题讨论】:

    标签: cakephp cakephp-2.0


    【解决方案1】:

    2 条建议

    首先,你可以覆盖URL参数中的页码,像这样

    $this->request->params['named']['page'] = YOUR_FAVORITE_INTEGER;
    

    这样做的问题是页面上的 URL 仍然会设置旧的 :page 值,所以...

    另一种方法是重定向到相同的控制器操作,但设置了不同的页码(如果您愿意,也可以不设置页码)。

    $this->redirect(array('action' => 'whatever', 'page' => YOUR_FAVORITE_INTEGER));
    

    以下是有关构建重定向的文档,以备不时之需: http://api.cakephp.org/class/router#method-Routerurl

    【讨论】:

      【解决方案2】:

      更好更简单的是,我使用它并在 Cake 1.3 中工作。不确定它是否适用于 2.x

      在控制器中:

      $this->paginator['page']= YOUR_FAVORITE_INTEGER;
      

      到目前为止,没有检测到问题。

      【讨论】:

      • 现在只需为 2.x 执行此操作:$this->Paginator->settings['page'] = YOUR_FAVORITE_INTEGER;
      【解决方案3】:

      尝试添加:

      $this->Paginator->settings['Model1']['page']=YourFavInteger;
      $this->Paginator->settings['Model2']['page']=YourFavInteger;
      
      $this->Paginator->paginate('Model1');
      $this->Paginator->paginate('Model2');
      

      到你的控制器。

      【讨论】:

        猜你喜欢
        • 2014-03-13
        • 1970-01-01
        • 1970-01-01
        • 2013-09-13
        • 2015-03-30
        • 2013-12-20
        • 2011-12-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多