phalcon几种分页方法
phalcon几种分页方法
一:
use Phalcon\Paginator\Adapter\Model as PaginatorModel; // Current page to show
// In a controller this can be:
// $this->request->getQuery('page', 'int'); // GET
// $this->request->getPost('page', 'int'); // POST
$currentPage = (int) $_GET["page"]; // The data set to paginate
$robots = Robots::find(); // Create a Model paginator, show 10 rows by page starting from $currentPage
$paginator = new PaginatorModel(
array(
"data" => $robots,
"limit" => 10,
"page" => $currentPage
)
); // Get the paginated results
$page = $paginator->getPaginate();
二:
use Phalcon\Paginator\Adapter\Model as PaginatorModel;
use Phalcon\Paginator\Adapter\NativeArray as PaginatorArray;
use Phalcon\Paginator\Adapter\QueryBuilder as PaginatorQueryBuilder; // Passing a resultset as data
$paginator = new PaginatorModel(
array(
"data" => Products::find(),
"limit" => 10,
"page" => $currentPage
)
); // Passing an array as data
$paginator = new PaginatorArray(
array(
"data" => array(
array('id' => 1, 'name' => 'Artichoke'),
array('id' => 2, 'name' => 'Carrots'),
array('id' => 3, 'name' => 'Beet'),
array('id' => 4, 'name' => 'Lettuce'),
array('id' => 5, 'name' => '')
),
"limit" => 2,
"page" => $currentPage
)
); // Passing a QueryBuilder as data $builder = $this->modelsManager->createBuilder()
->columns('id, name')
->from('Robots')
->orderBy('name'); $paginator = new PaginatorQueryBuilder(
array(
"builder" => $builder,
"limit" => 20,
"page" => 1
)
);
基于模糊查找的分页:
$builder = $this->modelsManager->createBuilder()
->columns("SysCustomer.cus_id,SysCustomer.man_id,SysCustomer.company_name,SysCustomer.contact_name,SysCustomer.mobile,SysCustomer.serv_status,
COUNT(DISTINCT SysCustApp.app_id ) as appcode_num,
COUNT(DISTINCT SysCustAppAirport.airport_code) as airport_num")
->from("SysCustomer")
->leftJoin("SysCustApp", "SysCustApp.cus_id = SysCustomer.cus_id")
->leftJoin("SysCustAppAirport", "SysCustAppAirport.cus_id = SysCustApp.cus_id");
if(!empty($param))
{
$builder ->where($where, array("company" => '%'.$param.'%', "contact"=>'%'.$param.'%', "mobile"=>'%'.$param.'%'));
}else{
$builder ->where($where);
}
$builder->groupBy("SysCustomer.cus_id"); $paginator = new PaginatorQueryBuilder(
array(
'builder'=>$builder,
'limit' =>10,
'page' =>$currentPage
)
);
phalcon几种分页方法的更多相关文章
- PostgreSQL两种分页方法查询时间比较
数据库中存了3000W条数据,两种分页查询测试时间 第一种 SELECT * FROM test_table WHERE i_id> limit 100; Time: 0.016s 第二种 SE ...
- java oracle的2种分页方法
java oracle的2种分页方法 一物理分页: <!-- 分页查询所有的博客信息 --> <select id="findBlogs" resultType= ...
- sql server两种分页方法
方法一: --分页方法一 OrderID,CustomerID, EmployeeID,OrderDate,ShippedDate,ShipName,ShipAddress,Freight from ...
- MVC三种分页方法
View部分: @using WebApplication1.Models;分页方法1引包 @*@using PagedList.Mvc; @using WebApplication1.Models; ...
- 数据分页 THINKPHP3.2 分页 三种分页方法
数据分页 复制本页链接 opensns 通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持. 下面是数据分页的两种示例. 第一种:利用Page类和limit方 ...
- Sql三种分页方法
--分页三种方法--第一种 ROW_NUMBER() OVER( ORDER BY OrgID) AS indexs 大于pagesize*pageindex,少于等于pagesize*(pagein ...
- sqlalchemy和flask-sqlalchemy的几种分页方法
sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1,page_size=10:所有分页查询 ...
- aspnetpager的2种分页方法
<webdiyer:AspNetPager ID="AspNetPager1" UrlPaging="True" PageSize="20&qu ...
- sqlserver两种分页方法比较
-- 3000 page(从1开始) 10 pagesize -- 方法1(效率不高): SELECT TOP 10 * FROM [xxx].[oooo] WHERE id NOT IN (SELE ...
随机推荐
- qt中信号与槽机制
一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不 ...
- java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
今天用maven编写Selenium测试程序时,调用 HtmlUnitDriver driver = new HtmlUnitDriver(true); 反法时报错如下: java.lang.NoCl ...
- profile、bashrc、bash_profile之间的区别和联系
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. 英文描述为: # /etc/pr ...
- 【leetcode❤python】Ransom Note
#-*- coding: UTF-8 -*- class Solution(object): def canConstruct(self, ransomNote, magazine): ...
- 【leetcode❤python】70. Climbing Stairs
#Method1:动态规划##当有n个台阶时,可供选择的走法可以分两类:###1,先跨一阶再跨完剩下n-1阶:###2,先跨2阶再跨完剩下n-2阶.###所以n阶的不同走法的数目是n-1阶和n-2阶的 ...
- UI事件 计算器界面
1.MainActivity.java package com.example.administrator.testapp2; import android.support.v7.app.AppCom ...
- MySql使用show processlist查看正在执行的Sql语句
今天上班例行的查看了下服务器的运行状况,发现服务器特卡,是mysqld这个进程占用CPU到了99%导致的. 比较好奇是那个程序在使用mysql导致cpu这么高的,通过show processlist命 ...
- Struts2-S2-032远程命令执行EXP
看到网上好多写的EXP有后门啊 还是自己写个吧! 工具下载:链接: http://pan.baidu.com/s/1miRbi2k 密码: fzfv
- 美国插画家Mike Bear作品欣赏
Mike Bear,美国插画师兼概念艺术家,在漫画和游戏界从业6年有余,分别为包括Popcap.Rockstar Games.Hasbro.EA等在内的业界巨头创建作品.他的画风较为抽象,大胆想象出一 ...
- python_way day6 反射,正则 模块(进度条,hash)
python_way day6 反射 正则 模块 sys,os,hashlib 一.模块: 1.sys & os: 我们在写项目的时候,经常遇到模块互相调用的情况,但是在不同的模块下我们通过什 ...