手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

zf的paginator的疑问

首页 > PHP Framework >

如果按照ZEND的手册,在使用Zend_Paginator类的时候有两种方法,一种是直接new,一种是用factory
当然,用factory是很方便的。只需要Zend_Paginator::factory( $array )就行了
可是,如果这个array很大怎么办?它没有说。。
即使是new Zend_Paginator( Zend_Db_xxx ?$array )[不记得括号中是哪个abstract了],如果数据量大,他也没办法的呀??

今天白天我试着一下子查询了1W多条,立马死掉。
我看网上的例子,大多是要么直接传结果,要么是传 ZEND_DB的查询对象进去。但结果集都不大的,所以顺利运行 了。我不知道结果集是上万的时候会怎么样,呵呵

最后我是采用了先COUNT出总数,然后用range生成一个大数组传组 Zend_Paginator::factory() ,因为我看他里面的计数是用count的,所以我对factory的数组参数就直接传了这个range出来的数组给它。

结果,成功了,看来,这也就可以了。只是方法有点妖而己。。

记录一下,备忘一下。

Config文件
[paginator]
page.pagemax = 10
page.pagestart = 1
page.itemperpage = 25

在文件里

PHP代码
  1. <?php  
  2. //...前面略  
  3. $request = $this->_request ;  
  4. $currentPage = $request->getParam('page');  
  5. $result = $table->fetchAll( ... 条件 );  
  6. $resultCount = $table->getCount( ... 条件 ); //文件自己实现  
  7. $resultCountArray = range( 1, $resultCount ); //到底是从0到resultCount-1好,还是直接从1到$resultCount好,我没有仔细测试过  
  8.   
  9. $paginator = Zend_Paginator::factory( $resultCountArray );  
  10. $paginator->setCurrentPage( $currentPage )  
  11.                 ->setItemPerPage( 25 )      //这个方法可能写错了,我是凭记忆写的,请看手册  
  12.                 ->setPageRange( 10 );  
  13. $this->view->paginator = $paginator;  

部分参数在获取失败的情况下,会直接从Config文件里读取,这里就不详细写了,大致应该是:

PHP代码
  1. <?php  
  2. //.....略  
  3. $config = new Zend_Config_Ini('...path...' , 'paginator' ); //即Config中[]包含的文字  
  4.   
  5. $pageMax = $config->page->pagemax ;  
  6. //取出来的每条数据都是对象了  



本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: zend, framework, paginator

« 上一篇 | 下一篇 »

只显示10条记录相关文章

QEE PHP 发布 (浏览: 33462, 评论: 5)
ZendFramewok介绍 (浏览: 32218, 评论: 0)
Fleaphp介绍(在迟来的QeePhp前的最后介绍) (浏览: 31154, 评论: 0)
【笔记】UBUNTU下安装zendoptimizer (浏览: 29169, 评论: 2)
使用ZendFramework的时候打印SQL (浏览: 28871, 评论: 0)
Yiiframework(Yii框架)开发笔记:续四 (浏览: 26883, 评论: 3)
來自風雪之隅的:深入理解PHP原理之foreach (浏览: 25239, 评论: 1)
zendframework 1.6终于将SOAP放进去了 (浏览: 24912, 评论: 0)
Zend_Acl and MVC Integration Part I (Basic Use) (浏览: 24271, 评论: 0)
测试JS的速度 (浏览: 24058, 评论: 0)

发表评论

评论内容 (必填):