【问题标题】:Same CakePHP controller with different "order by"具有不同“排序依据”的相同 CakePHP 控制器
【发布时间】:2011-08-09 20:44:40
【问题描述】:

我有一个简单的 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');

但在这种情况下,这还不够,因为我需要(至少)两个不同的“订购依据”语句

【问题讨论】:

    标签: cakephp pagination cakephp-1.3


    【解决方案1】:

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

    $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

    【讨论】:

    • 我已经更新了我的答案,如果你pr($this->paginate) 很明显它只是一个你可以随意更改的变量
    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多