0

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

  1. 每个用户的个人(因此不是数据库中的字段)
  2. 根据动态创建的复杂计算频繁更改
  3. 当前存储在会话数组中

我有一个包含所有相关项目 ID 的数组和一个定义订单位置的值。我需要的是一种方法来教分页使用我在数组中定义的顺序而不是数据库中的任何排序。我拥有的数组如下所示,其中第一个数字是订单中的位置,第二个是项目的 ID。

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

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

1 回答 1

1

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

此行为将处理需要成为列表的项目。

于 2013-08-11T11:37:30.170 回答