phalcon分页的处理
由于项目是用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,不过考虑到次数在查询时会变化,而且也不会浏览全部,还是可以接受的。
phalcon分页的处理的更多相关文章
- phalcon几种分页方法
phalcon几种分页方法 一: use Phalcon\Paginator\Adapter\Model as PaginatorModel; // Current page to show // I ...
- phalcon——Paginator分页
phalcon使用的分页器是Phalcon\Paginator. 首先先展示一个比较完整的使用例子: 控制器代码: use Phalcon\Paginator\Adapter\Model as Pag ...
- phalcon: 多模块多表查找,多表sql
那么多模块下,如何分页的,如果直接用->from(表名),报错找不到此类,此时要引用model类的全命名空间名称如下: $builder = $this->modelsManager-&g ...
- phalcon: Windows 下 Phalcon dev-tools 配置 和 Phpstorm中配置Phalcon 代码提示, phalcon tools的使用
准备: phalcon-devtools包 下载地址: https://github.com/phalcon/phalcon-devtools 解压到wampserver的www目录 (xampp 用 ...
- phalcon: 官方多模块
目录结构如下 public/index.php: use Phalcon\Mvc\Router; use Phalcon\Tag; use Phalcon\Mvc\Url; use Phalcon\M ...
- 使用Phalcon框架开发一个简易的博客系统
使用Phalcon PHP框架开发一个简易的博客系统(类似于CMS) 最近在做Phalcon(Phalcon在英文中指的是鸟类中飞得最快的那一个物种,由于是高性能框架,借用了这个词)相关的项目,由于刚 ...
- Phalcon 开发工具(Phalcon Developer Tools)
Phalcon提供的这个开发工具主要是用来辅助开发,比方生成一些程序的基本框架.生成控制器模型等. 使用这个工具我们仅仅须要一个简单的命令就可以生成应用的基本框架. 很重要: 要使用这个工具我们必需要 ...
- 记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerP ...
- js实现前端分页页码管理
用JS实现前端分页页码管理,可以很美观的区分页码显示(这也是参考大多数网站的分页页码展示),能够有很好的用户体验,这也是有业务需要就写了一下,还是新手,经验不足,欢迎指出批评! 首先先看效果图: 这是 ...
随机推荐
- java 打包war包
jar -cvf news.war news war包放在Tomcat webApp中可以自动解压.
- linux上传下载文件rz,sz
[一般用于SecureCRT ssh中使用] █ 法一:直接用yum安装lrzsz(推荐) yum install lrzsz -y 注意:rhel安装完系统后 直接可使用 rz sz █ 法二:源文 ...
- OpenWrt中对USB文件系统的操作, 以及读写性能测试
参考 http://h-wrt.com/en/doc/flash 1. 查看usb存储在启动日志中的信息 # dmesg [ 5.720000] usbcore: registered new int ...
- 面试题 Comparable、Comparator 比较
Comparable 用作默认的比较方式 Comparator 用作自定义的比较方式,当默认的比较方式不适用时或者没有提供默认的比较方式,使用Comparator就非常有用. 像Arrays和Coll ...
- SqlServer强制断开数据库已有连接的方法(转)
在master数据库中执行如下代码 declare @i INT declare cur cursor for select spid from sysprocesses where db_name ...
- cxGrid显示行号
定义一个类: TMyCxGrid = class(TObject) class procedure DrawIndicatorCell( Sender: TcxGridTableView; ACanv ...
- Oracle Explain Plan,hint解释与示例
Oracle 专业dba博客:http://blog.csdn.net/tianlesoftware Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响S ...
- Linux vi命令大全
http://www.cnblogs.com/88999660/articles/1581524.html一.Unix编辑器概述 编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少 ...
- struts2每次访问都会创建一个新的session
1.第一次 项目在测试过程中,突然发现登陆之后再去访问其他菜单时都会提示未登录: 查看日志之后发现是因为很多次请求时都会自动创建一个新的session,这就费解了, 因为之前也没改动什么session ...
- MyEclipse中常用的快捷键大全
http://www.cnblogs.com/wl0000-03/p/5953989.htmlMyEclipse中常用的快捷键大全 复制当前行到下(上)一行中:ctrl+alt+上下键 自动补全alt ...