CakePHP 1.2.5中多个模型的分页

And*_*son 3 php mysql pagination cakephp-1.2

我正在开发一个博客视图,将博客帖子,评论和上传的媒体项目混合到一个大的网格布局中.我在CakePHP和协会中设置了各个模型,其中一些如下:

Comment BelongsTo Post or Media
Post HasMany Media
Run Code Online (Sandbox Code Playgroud)

我正在使用的是尝试将所有三个模型(Comment, Media, Post)分类为一个大的数据数组,然后我可以对其进行分页.

我已经在数据库中有一个'创建'日期时间字段.我理解如何使用CakePHP对每个单独的数据库调用进行分页PaginationHelper.我也合并了数组.然而,混合单个数据库调用然后合并数组似乎打破了分页,因为它不适用于PaginationHelper(据我所知).

你对此有什么建议吗?

此外,我想保持数据库调用的数量,所以沿着这些线的任何建议都会很棒.谢谢!

安德鲁〜

spe*_*ley 5

听起来你想对这3种型号使用某种UNION选择.您可以通过覆盖模型的默认paginate和paginateCount方法来实现此目的.Cook Book(http://book.cakephp.org/view/249/Custom-Query-Pagination)中介绍了基础知识.

听起来你想用find('query')代替find(all),如下所示:

/**
 * Overridden paginate method - group by week, away_team_id and home_team_id
 */
function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null, $extra = array()) {
    $recursive = -1;
    $group = $fields = array('week', 'away_team_id', 'home_team_id');
    return $this->query('SELECT field1, field2 FROM table1 
                         UNION SELECT field1, field2 FROM table2 
                         LIMIT '.(($page-1)*$limit).', '.$limit);
}
Run Code Online (Sandbox Code Playgroud)