在cakephp分页中设置页码

时间:2012-05-14 12:59:56

标签: cakephp cakephp-2.0

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

我已经想通了,如果我能够静态设置页面,我可以让它工作。

我想将其设置为

  

'页'=大于1

我知道我们可以这样设定。但如果网址中有一个参数

  

..... /页:2 /....

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

三江源

3 个答案:

答案 0 :(得分:8)

2建议

首先,您可以覆盖URL参数中的页码,例如

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

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

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

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

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

答案 1 :(得分:1)

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

在控制器中:

$this->paginator['page']= YOUR_FAVORITE_INTEGER;
到目前为止,没有发现问题。

答案 2 :(得分:1)

尝试添加:

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

$this->Paginator->paginate('Model1');
$this->Paginator->paginate('Model2');

到您的控制器。