1

这是场景:我有一个Posts模型,每个帖子都有一个Meta附加的$hasMany. Meta 模型包含查看计数器、下载计数器等。

这样做是为了避免每次用户访问帖子时更新帖子,并且因为我将有另一个索引,其中最近修改的帖子将驻留,所以每次访问时更改帖子违背了“最近修改的帖子”的目的" index 所以viewsanddownloads被保存在 Meta.

如何使用 Meta 模型中的数据(如下载)订购带有分页的帖子索引视图,以便帖子按下载排序?

我希望这足够清楚,如果您需要更多数据,请在下面发表评论。

4

1 回答 1

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。

编辑 为了使其工作(分页数组中的包含键),您需要将 Containable 行为添加到 Meta 模型:

public $actsAs = array('Containable');
于 2012-07-05T18:29:46.193 回答