这是一个场景:我有一个Posts
模型,每个帖子都有Meta
通过$hasMany
附加。 Meta模型包含一个视图计数器,一个下载计数器等。
这样做是为了避免每次用户访问帖子时更新帖子,并且因为我将有另一个索引,其中最近修改的帖子将驻留在其中,因此每次访问时更改帖子都会失败的目的“最近修改过的”索引,以便将views
和downloads
保存在Meta中。
如何使用Meta模型中的数据(例如下载)分页帖子索引视图,以便帖子按下载排序?
我希望这很清楚,如果您需要更多数据,请在下面发表评论。
答案 0 :(得分:1)
首先,您需要声明分页设置,例如
$this -> paginate = array(
'limit' => 3, // your desired limitation
'contain' => array('Meta'),
'fields' => array(
'Post.title',
'Post.date_published',
...,
'Meta.downloads',
'Meta.views'
),
'order' => 'Meta.downloads {ASC|DESC}'
);
然后你可以像这样分页:
$this -> set('posts', $this -> paginate('Post'));
假设您的模型被称为Post和Meta。
修改强> 为了使其工作(paginate数组中的contains键),您需要将Containable行为添加到Meta模型中:
public $actsAs = array('Containable');