相同的CakePHP控制器具有不同的“order by”

时间:2011-08-09 11:04:21

标签: cakephp pagination cakephp-1.3

我有简单的CakePHP控制器,使用索引方法。

我的愿望是使用相同的控制器和相同的方法,对于两种情况,其中在一种情况下,它将从第一类别中选择(列出)记录,在第二类别中从第二类别中选择。所以它看起来很简单。

但在这两种情况下,我需要不同的“Order By”MySQL声明。

我是否需要重写分页方法,还是有其他方法可以实现这一目标?

提前谢谢!

更新:这是选择记录的方式:

$contents = $this->Content->find('all', array('fields'=>array('Content.*'), 'order'=>array('Content.id DESC'), 'conditions' => array('Content.category_id' => $category_id)));

通常,我会用

进行分页
$data = $this->paginate('Content');

但在这种情况下还不够,因为我需要(至少)两个不同的“Order By”陈述

1 个答案:

答案 0 :(得分:0)

只需在调用$this->paginate['Model']['order']之间设置$this->paginate('Model');即可。如果不清楚,请使用一些代码更新您的答案。

$this->paginate['Content'] = array('fields'=>array('Content.*'), 'order'=>array('Content.id DESC'), 'conditions' => array('Content.category_id' => $category_id)));
$contents = $this->paginate('Content');

请记住,您会遇到问题paginating 2 models on the same page