cakephp:按个别数据对分页进行排序

时间:2013-08-11 11:31:23

标签: cakephp pagination

我正在使用CakePHP 2.3.7。为了向用户显示内容,我有一个名为内容的模型。控制器从此模型获取数据并使用分页将其发送到视图。到目前为止,一切正常。现在我想以非常具体的顺序显示内容 。据我所知,我不能在paginate()中使用“order”参数,因为订单是:

  1. 每个用户的个人(因此不是数据库中的字段)
  2. 根据动态创建的复杂计算频繁更改
  3. 目前存储在会话数组中
  4. 我有一个包含所有相关项ID的数组和一个定义顺序中位置的值。我需要的是一种教导分页使用我在数组中定义的顺序而不是从数据库中进行任何分类的方法。我看到的数组如下所示,其中第一个数字是订单中的位置,第二个数字是项目的ID。

    有没有办法告诉分页使用这个特定的项目顺序?

    array(
            (int) 0 => '308',
            (int) 1 => '311',
            (int) 2 => '313',
            (int) 3 => '317',
            (int) 4 => '325',
            (int) 5 => '326',
        )
    

1 个答案:

答案 0 :(得分:1)

那么,不要将订单存储在会话或数组中,而是将其存储在每个用户群的数据库中?在(重新)计算之后更新订单信息,您可以按功能使用DB的订单。因此,要么将“位置”字段直接放入表中,要么将其与mutliple用户关联,将其放入连接表并按此字段排序。

This behaviour将处理需要列表的项目。