您的位置:首页 > 其它

phalcon分页的处理

2016-07-26 21:50 218 查看
由于项目是用phalcon做的,主要是处理api,也做些简单的web页面。

有一个页面是显示日志的,结果后来日志达到几万条后php内存爆了,查了一下代码,

居然是直接读出所有数据库数据,使用的\Phalcon\Paginator\Adapter\NativeArray来做分页的,被雷到了。

但是我又不想改动view,查看了一下Paginator的属性,于是简单写了十多行,一切ok了。

function pageNew($pageNum,$pageSum,$items) {

$page = new \stdClass();
$page->items=$items;
$page->current=$pageNum;
$page->before=$pageNum-1;
$page->next=$pageNum+1;
$page->last=$pageSum;
$page->total_pages = $pageSum;
$this->view->page = $page;
}


在查询的地方修改

$currentPage = $this->request->getQuery('page', 'int');
if(empty($currentPage) || $currentPage < 1) {
$currentPage = 1;
}
$limit = " LIMIT ". ($currentPage-1)*self::PAGE_LIMIT . "," . self::PAGE_LIMIT;


则每次查询后把结果传给pageNew函数即可,遗憾的每次翻页时都要做一次count,不过考虑到次数在查询时会变化,而且也不会浏览全部,还是可以接受的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: