【问题标题】:CakePHP paginator isn't sortingCakePHP 分页器没有排序
【发布时间】:2014-02-11 19:38:27
【问题描述】:

在 CakePHP 中,我想在序列 ASC 上对我的索引列表(由分页器组件创建)进行排序,但它不起作用。如果我在 CakePHP 文档 (http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html#query-setup) 中看到查询设置,我的分页器设置应如下所示:

public function index()
{
    $this->Paginator->settings = array(
        'Attraction' => array(
            'conditions' => array(
                'Attraction.deleted' => null
            ),
            'order' => array(
                'Attraction.sequence ASC',
                'Attraction.id ASC'
            ),
            'limit' => 15
        )
    );

    $attractions = $this->Paginator->paginate('Attraction');

    $this->set('attractions', $attractions);
}

但每次我加载索引文件时,列表都会按 ID 排序并忽略“顺序”设置。谁能告诉我我的分页器设置中的“订单”项目是否有问题? ;) 谢谢!

【问题讨论】:

    标签: sorting cakephp paginator


    【解决方案1】:

    试试

    'order' => array(
         'Attraction.sequence' => 'asc',
         'Attraction.id' => 'asc'
    ),
    

    编辑:

    排序方向必须在数组值中,而字段名应该是索引。我在文档中找到的示例总是表明

    【讨论】:

    • 你能添加一些描述吗?
    【解决方案2】:

    我认为您的选项数组中不应包含该景点索引 - 换句话说,我认为您的选项数组应如下所示:

    $this->Paginator->settings = array(
         'conditions' => array(
             'Attraction.deleted' => null
         ),
         'order' => array(
             'Attraction.sequence ASC',
             'Attraction.id ASC'
         ),
        'limit' => 15
    );
    

    【讨论】:

    • 是的,这行得通,但正如 CakePHP 中所述,应该可以在同一个操作中对多个列表进行分页:book.cakephp.org/2.0/en/core-libraries/components/…(参见代码块 4)。现在,我只有一个列表,但可能我必须添加第二个。也许,当我确实有 2 个列表时,我的代码会起作用吗? :)
    猜你喜欢
    • 2012-05-10
    • 1970-01-01
    • 2016-06-12
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2015-05-10
    • 2012-03-08
    相关资源
    最近更新 更多