• phalcon分页的处理


    由于项目是用phalcon做的,主要是处理api,也做些简单的web页面。

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

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

    但是我又不想改动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,不过考虑到次数在查询时会变化,而且也不会浏览全部,还是可以接受的。

  • 相关阅读:
    FTP命令行工具NCFTP
    XP 通过无线网卡 建立对等网
    Silverlight WCF 压缩
    EntityFramework Linq查询
    UCS2编码转换C#
    C#7Z压缩
    c#公钥加密私钥解密和验证
    SVN global ignore pattern for c#
    典型的DIV CSS三行二列居中高度自适应布局
    VC#窗体的大小设置
  • 原文地址:https://www.cnblogs.com/xdao/p/phalcon_page.html
Copyright © 2020-2023  润新知