蛋糕PHP 2.x :如何从另一个模型中的值中订购模型



这是这样的场景:我有一个Posts模型,每个帖子都有一个通过$hasMany附加Meta。元模型包含一个视图计数器、一个下载计数器等。

这样做是为了避免每次用户访问帖子时都更新帖子,并且因为我会有另一个索引,最近修改的帖子将驻留在其中,因此每次访问时更改帖子都会破坏"最近修改"索引的目的,因此viewsdownloads保存在 Meta 中。

如何使用来自 Meta 模型(如下载)的数据对帖子索引视图进行分页排序,以便按下载对帖子进行排序?

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

首先,您需要声明分页设置,如下所示

   $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 行为添加到元模型:

public $actsAs = array('Containable');

相关内容

最新更新