标签:cakephp-1-2 pagination mysql php
我正在为博客创建视图,该视图将博客文章,评论和上载的媒体项目混合到一个大的网格布局中.我已经在CakePHP和关联中建立了各个模型,其中一些如下:
Comment BelongsTo Post or Media
Post HasMany Media
我正在使用的方法是尝试将所有三个模型(评论,媒体,发布)分类为一大组数据,然后可以对它们进行分页.
我已经在数据库中有一个“创建的”日期时间字段.我了解如何使用CakePHP PaginationHelper对每个单独的数据库调用进行分页.我也合并了数组.但是,混合单个数据库调用然后合并数组似乎破坏了分页,因为它不能与PaginationHelper一起使用(据我所知).
您对此有什么建议吗?
另外,我想减少数据库调用的次数,因此按照这些原则提出的任何建议都是不错的选择.谢谢!
〜安德鲁
解决方法:
听起来您想针对这3个模型使用某种UNION选择.您可以通过重写模型的默认paginate和paginateCount方法来实现. Cookbook(http://book.cakephp.org/view/249/Custom-Query-Pagination)中介绍了基础知识.
听起来您想将find(all)替换为find(‘query’),如下所示:
/**
* 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);
}
标签:cakephp-1-2,pagination,mysql,php 来源: https://codeday.me/bug/20191024/1919418.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。