yii---对数组进行分页
很多时候,我们会对多个数据进行分页处理,例如我最近开发的一个功能,系统消息,系统消息的来源是多个表,而且多个表之间的数据没有任何关联,这个时候,需要对多个表进行查询,查询返回的数据进行分页,而且采用的是异步无刷新分页。
使用的是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---对数组进行分页的更多相关文章
- PHP基于数组的分页函数(核心函数array_slice())
关于数组的分页函数,用数组进行分页的好处是可以方便的进行联合多表查询,只需要将查询的结果放在数组中就可以了以下是数组分页的函数,函数page_array用于数组的分页,函数show_array用于分页 ...
- php数组内容分页的例子(转)
php数组内容分页代码 时间:2016-03-04 23:46:34来源:网络 导读:php数组内容分页代码,当前页如果大于总页数,当前页为最后一页,分页显示时,应该从多少条信息开始读取数据. p ...
- php基于数组的分页实现
关于数组的分页函数,用数组进行分页的好处是可以方便的进行联合多表查询,只需要将查询的结果放在数组中就可以了以下是数组分页的函数,函数page_array用于数组的分页,函数show_array用于分页 ...
- Yii 自带的分页实例
yii自带的分页很好用,简单的几行代码就能把分页搞出来,唯一恼火的是只能写在controller中,所以有时候controller中的方法有点臃肿.废话少说,上代码上图. 一.代码实例: 1.控制器中 ...
- PHP二维数组的分页
方法一: <?php $arr_click = array( array( 'clicks' => 3, 'clickDate' =>'2015-10-11' ), array( ' ...
- mysql 数据库封装类:返回索引、关联、字符串数组;分页查询封装类 :$page=new Page(表的总条数,每页的条数);$sql = "".$page->limit; echo $page->fpage();
<?php class czy { public $host="localhost"; //地址 public $uid="root"; //用户名 pu ...
- Yii 框架ajax搜索分页
要想实现ajax搜索分页 其实很简单 第一步:在 Yii 框架自带的搜索和分页正常运行的情况下,在视图层
- 小笔记(三):PHP使用thinkphp3.2.3对数组进行分页
之前写过thinkphp3.2.3直接在查询数据的时候进行分页,前段时间用到了将查询之后的数组进行整理后进行分页,用到的一个函数array_slice($arr, $start, $length,tr ...
- Yii的数组助手类
获取值 用原生PHP从一个对象.数组.或者包含这两者的一个复杂数据结构中获取数据是非常繁琐的. 你首先得使用isset 检查 key 是否存在, 然后如果存在你就获取它,如果不存在, 则提供一个默认返 ...
随机推荐
- [原]pomelo开发环境搭建
pomelo基于nodejs服务器开源框架,比较牛逼的! 1.安装nodejs(官网下载地址) 安装python等 具体见官网说明 2.安装pomelo(见官方步骤)或者 http://blog.cs ...
- MySQL--指定浮点型数据的精确度TRUNCATE
INSERT INTO perf_week(node_id,perf_time,pm25,pm10,temp,humi) ) ) ) ) AS humi FROM perf_pm25 WEEK) AN ...
- GoF--装饰者设计模式
顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例. 装饰器模式的应用场景: 1.需要扩展一个类的功能. 2.动态的为 ...
- MongoDB 备份恢复
备份: mongodump --host -u admin -p -o /tmp/alldb/ // 备份所有的库 mongodump --host -u admin -p -d mydb -o /t ...
- Spring transaction事务 roll back各种回滚
Spring的AOP事务管理默认是针对unchecked exception回滚. 也就是默认对RuntimeException()异常极其子类进行事务回滚. Exception作为基类,下面还分ch ...
- linux系统如何操作隐藏文件
在linux下,以点"."开头命名的文件在系统中被视为隐藏文件.因此,如果想隐藏某个文件或目录,一种简单的办法就是把文件名命名为点开头. 对于目录backcron,可以这样操作隐藏 ...
- C++易混淆知识点整理
// 1 /////////////////////////////////////////////////////////////////////// // 常量指针:,指针可修改,变量不可修改(只 ...
- iOS - App Extension 整体总结
一.App Extension的介绍 App Extension可以让你扩展你APP的自定义功能和内容,使用户可以在与其他应用或者系统进行互动的时候去使用它.app extension即为本文所说的e ...
- 【python系列】python初识
前言 Python是一种高层次,解释,互动性和面向对象的脚本语言,Python被设计成具有很强的可读性语言.它采用应用关键字,而其他语言一般使用标点符号,并且具有比其他语言有较少的语法结构. Pyth ...
- vue笔记 - 生命周期第二次学习与理解
对于刚接触vue一两个月.才仅仅独立做过一两个vue项目的小白来说,以前一直自我感觉自己知道vue的生命周期, 直到前两天去面试,面试官让我说一下vue的生命周期... 其实我的心中是有那张图的,但是 ...