很多时候,我们会对多个数据进行分页处理,例如我最近开发的一个功能,系统消息,系统消息的来源是多个表,而且多个表之间的数据没有任何关联,这个时候,需要对多个表进行查询,查询返回的数据进行分页,而且采用的是异步无刷新分页。

使用的是YII的ArrayDataProvider:具体位置:

怎样引入?

打开看它的命名空间:

namespace yii\data;

到项目的引用方式:

use yii\data\ArrayDataProvider;

具体使用:

public function actionMessagesystem(){
$list = [
array('id'=>1,'username'=>'aa','password'=>'aaaaaaaaaaaa','create_time'=>1),
array('id'=>2,'username'=>'bb','password'=>'bbbbbbbbbbbb','create_time'=>3),
array('id'=>3,'username'=>'cc','password'=>'cccccccccccc','create_time'=>5),
array('id'=>4,'username'=>'dd','password'=>'dddddddddddd','create_time'=>7),
array('id'=>5,'username'=>'ee','password'=>'eeeeeeeeeeee','create_time'=>8),
array('id'=>6,'username'=>'ff','password'=>'ffffffffffff','create_time'=>9),
array('id'=>7,'username'=>'gg','password'=>'gggggggggggg','create_time'=>12),
array('id'=>8,'username'=>'hh','password'=>'hhhhhhhhhhhh','create_time'=>10),
array('id'=>9,'username'=>'jj','password'=>'jjjjjjjjjjjj','create_time'=>10),
array('id'=>10,'username'=>'qq','password'=>'qqqqqqqqqqqq','create_time'=>10),
array('id'=>11,'username'=>'www','password'=>'wwwwwwwwwww','create_time'=>20),
array('id'=>12,'username'=>'xx','password'=>'xxxxxxxxxxxx','create_time'=>10),
array('id'=>13,'username'=>'zz','password'=>'zzzzzzzzzzzz','create_time'=>10),
];
// $page = 2;
$provider = new ArrayDataProvider([
'allModels' => $list,
'sort' => [
'attributes' => ['id', 'username', 'password','create_time'],
'defaultOrder' => [
'create_time'=>SORT_DESC,
'id'=>SORT_ASC
]
],
'pagination' => [
'page' => 0,
'pageSize' => 3
],
]);
echo $provider->getCount(); // 获取分页的数量
echo $provider->getTotalCount(); //获取分页总数
$lists = $provider->getModels(); // 获取分页后的数据
p($lists);
echo "message system";
}

注意这里 page=>0 表示的是异步请求第一页,如果不是异步可以这样做:

示例

http://xx.xxx.com/test/index(默认地址) 默认返回 前十条数据

http://xx.xxx.com/test/index?page=2 第二页数据

http://xx.xxx.com/test/index?sort=-key 数组key值倒序,倒序排序后十条

http://xx.xxx.com/test/index?sort=-key&page=3&page_size=20 分页大小为20,倒序排序第三页

参考:

https://blog.csdn.net/baijingdong/article/details/53302485

yii---对数组进行分页的更多相关文章

  1. PHP基于数组的分页函数(核心函数array_slice())

    关于数组的分页函数,用数组进行分页的好处是可以方便的进行联合多表查询,只需要将查询的结果放在数组中就可以了以下是数组分页的函数,函数page_array用于数组的分页,函数show_array用于分页 ...

  2. php数组内容分页的例子(转)

    php数组内容分页代码 时间:2016-03-04 23:46:34来源:网络 导读:php数组内容分页代码,当前页如果大于总页数,当前页为最后一页,分页显示时,应该从多少条信息开始读取数据.   p ...

  3. php基于数组的分页实现

    关于数组的分页函数,用数组进行分页的好处是可以方便的进行联合多表查询,只需要将查询的结果放在数组中就可以了以下是数组分页的函数,函数page_array用于数组的分页,函数show_array用于分页 ...

  4. Yii 自带的分页实例

    yii自带的分页很好用,简单的几行代码就能把分页搞出来,唯一恼火的是只能写在controller中,所以有时候controller中的方法有点臃肿.废话少说,上代码上图. 一.代码实例: 1.控制器中 ...

  5. PHP二维数组的分页

    方法一: <?php $arr_click = array( array( 'clicks' => 3, 'clickDate' =>'2015-10-11' ), array( ' ...

  6. mysql 数据库封装类:返回索引、关联、字符串数组;分页查询封装类 :$page=new Page(表的总条数,每页的条数);$sql = "".$page->limit; echo $page->fpage();

    <?php class czy { public $host="localhost"; //地址 public $uid="root"; //用户名 pu ...

  7. Yii 框架ajax搜索分页

    要想实现ajax搜索分页 其实很简单 第一步:在 Yii 框架自带的搜索和分页正常运行的情况下,在视图层

  8. 小笔记(三):PHP使用thinkphp3.2.3对数组进行分页

    之前写过thinkphp3.2.3直接在查询数据的时候进行分页,前段时间用到了将查询之后的数组进行整理后进行分页,用到的一个函数array_slice($arr, $start, $length,tr ...

  9. Yii的数组助手类

    获取值 用原生PHP从一个对象.数组.或者包含这两者的一个复杂数据结构中获取数据是非常繁琐的. 你首先得使用isset 检查 key 是否存在, 然后如果存在你就获取它,如果不存在, 则提供一个默认返 ...

随机推荐

  1. 1. BeeGo 介绍与项目的创建,启动

    简介 BeeGo是一个快速开发Go而应用的HTTP框架,他可以用来快速开发API,web以及后端服务等各种应用,是一个restful 的框架,主要涉及灵感来源于tornado,sinatr和flask ...

  2. ABBYY FineReader操作技巧

    使用ABBYY FineReader OCR文字识别软件工作即快速又简单,软件自身常常可以自行处理一切工作,用户只需点击几下软件中的‘主要’按钮.不过,有时要想获得更好的质量结果,或者解决某个不寻常的 ...

  3. tomcat8.0 基本参数调优配置

    1.优化内核及TCP连接:   fs.file-max = 655350 # 系统文件描述符总量 net.ipv4.ip_local_port_range = 1024 65535 # 打开端口范围 ...

  4. python中,获取字符串的长度

    说明: 与其他的语言一样,有时候需要查看或者说计算字符串的长度.在此记录下python中通过哪个函数实现. 操作过程: 1.通过len()函数返回字符串的长度 >>> text='p ...

  5. 【scala】 scala 条件控制 和异常处理(二)

    1.scala 变量定义 ,var val 区别. var 定义可变变量 val 定义不可变变量,scala 推荐使用.相当于Java的final 变量. scala中包含的基本数据类型详情如下表所示 ...

  6. Matlab 随机数字

    1.随机生成仅仅有0.1元素的矩阵(m行n列) A=round(rand(m,n)) 2.随机生成每行有若干个0,1元素的矩阵,比方每行仅仅有2个元素为1,其它元素为0 A=zeros(4,5) fo ...

  7. Java输出错误信息与调试信息

    创建一个类,在该类的main()主方法中,使用System类中的out和err两个成员变量来完成调试与错误信息的输出. public class PrintErrorAndDebug { public ...

  8. Splash images_enabled 属性

    images_enabled属性用于设置加载页面时是否加载图片,如下,禁止之后,返回的页面截图就不会带有任何图片,加载速度也会快很多 function main(splash, args) splas ...

  9. GLIBC_2.14报错

    [linux]提示"libc.so.6: version `GLIBC_2.14' not found",系统的glibc版本太低 0.以下在系统CentOS 6.3 x86_64 ...

  10. 在 Core Data 中存取 transformable 类型的数据

    本文转载至 http://imenjoe.com/2015/04/10/CoreData-transformable-20150410/ 在开发过程中有一个需要在 Core Data 中存取 NSDi ...