cakephp - 如何更改分页条件?

标签 cakephp controller sql-order-by cakephp-1.3

在同一 Controller 的几个地方我有如下代码:

$publications = $this->paginate('Publication', $conditions);

...其中$conditions是条件数组,选择哪些字段以及如何选择(在mysql中使用LIKE)。

他们每个人都有不同的“Order by”声明。

我怎样才能实现这一点,并定义sql的不同“order by”部分?

更新(2011-03-11):这是我定义分页的部分方式:

$this->paginate = array(
        'limit' => 1, 
        'fields' => array('`Publication`.*, PublicationNumeration.*, Collection.*, Publisher.*, Publication.title as PublicationTitle'), 
        'joins' => array( array('table' => 'publication_numerations', 'alias' => 'PublicationNumeration', 'type' => 'LEFT', 'conditions' => array( 'Publication.id = PublicationNumeration.publication_id' ) ) ) 
        , 'order' => array('PublicationTitle desc')
      );

            $publications = $this->paginate('Publication', $conditions);
            $this->set(compact('publications', 'urlArgs'));

带有“limit”的部分有效,但“order”不起作用,并且根本不会在 Debug模式下显示。

最佳答案

每次在每个不同的操作中实现分页功能时,您都可以覆盖分页功能。例如:

function list_recipes() {
    $this->paginate = array(
        'limit' => 10,
        'order' => array(
            'Recipe.title' => 'asc'
        )
    );
    $data = $this->paginate('Recipe');
    $this->set(compact('data'));
}

就您的情况而言,您可能希望重用 $conditions 数组,但为每个不同的实现更改 'order' 的值。

进一步引用:Pagination doc

关于cakephp - 如何更改分页条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5216692/

相关文章:

php - 在 CakePHP 中使用媒体 View 下载文件

cakephp - 在 CakePHP 中保存数据表单

sql - 将查询结果返回到 Grails 中的 View

mysql - 使用多行作为一个订单

mysql - 在 MySQL 中创建过程时如何使 ORDER BY 工作?

php - 当我使用 CakePHP 2.x 生成 Excel 文件时文件损坏

php - 如何使用 jQuery 和 CakePHP 更新 <div>?

ruby-on-rails - Ruby on Rails : After search, 列表未显示所有数据

c# - 在 Controller 操作中执行 SQL 查询

c# - 按日期和时间排序列表(字符串格式)