php - CakePHP 1.2.5 中多个模型的分页

标签 php mysql pagination cakephp-1.2

我正在为一个博客创建一个 View ,它将博客文章、评论和上传的媒体项目混合到一个大的网格布局中。我已经在 CakePHP 和关联中设置了各个模型,其中一些如下:

Comment BelongsTo Post or Media
Post HasMany Media

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

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

您对此有什么建议吗?

此外,我想减少数据库调用的次数,因此任何与此相关的建议都会很好。谢谢!

~安德鲁

最佳答案

听起来您想对这 3 个模型使用某种 UNION 选择。您可以通过覆盖模型的默认 paginate 和 paginateCount 方法来实现这一点。 cooking 书 (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);
}

关于php - CakePHP 1.2.5 中多个模型的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959168/

相关文章:

mysql - 如何在插入行时更新外键?

java - 使用 JPQL 和 BooleanExpression 进行分页

mysql - 分组分页日期数据

php - mysql数据未更新

php - 购物车数据库设计: adding functionality for quantities by size

上传前 PHP 检查文件大小 - 10 字节

mysql - 在前序遍历表的 ul li 标签中显示树结构不起作用

php - 在php继承中执行__constructor()

php - mysqli 绑定(bind)变量

php - 在分页期间保留 url 参数