【问题标题】:automatically convert query to zend db select自动将查询转换为 zend db select
【发布时间】:2011-08-22 00:58:26
【问题描述】:
因为我需要为 zend 分页器使用 zend db select 对象,所以我想知道是否有人找到了一种自动转换机制的实现 b/w 对 zend db select 对象的正常查询,或者实际上已经实现了这种自动转换和愿意分享代码...
请注意,我不是在问如何将查询转换为 zend db select...我知道该怎么做...我问是否有人已经拥有/知道此类过程的实际编码实现,因为我不想浪费时间重新发明轮子......
【问题讨论】:
标签:
php
mysql
zend-framework
【解决方案1】:
您应该能够使用空适配器,并且只需传入计数而不是查询。您需要事先自己计算出计数(总记录数)。
$total = 531; // from COUNT(*) or similar
$paginator = Zend_Paginator::factory($total);
$paginator->setCurrentPageNumber($page);
$paginator->setItemCountPerPage($perPage);
$paginator->render();
这允许您仅使用分页器来呈现分页,而不是实际对数据应用限制。如果你有页面和每页的项目,你应该能够很容易地生成一个 LIMIT 子句。
您还可以制作自己的适配器,该适配器接受(字符串)查询,并使用适配器将限制应用于它的末尾。这样,您还可以让它实现 getItems() 方法,使其标准化。