当数据过多,无法一页显示时,我们经常会用到分页组件,YII2中已经帮我们封装好了分页组件。

首先我们创建操作数据表的AR模型:

<?phpnamespace app\models;use yii\db\ActiveRecord;class MyUser extends ActiveRecord
{public static function tableName(){return '{{%user}}';}
}

然后创建分页的控制器:

<?phpnamespace app\controllers;use YII;
use app\models\MyUser;
use yii\data\Pagination;
use yii\web\Controller;class IndexController extends Controller
{public function actionIndex(){$name = YII::$app->request->get('name', '');$where = '1=1 ';$param = [];//如果查询条件很多,可以按这种方式,拼where条件if (!empty($name)) {$where .= "AND name=:name";$param = array_merge($param, [':name' => $name]);}//设置分页大小,为了演示,我写成了2$pageSize = 2;$user = MyUser::find()->where($where, $param);//创建分页组件$page = new Pagination([//总的记录条数'totalCount' => $user->count(),//分页大小'pageSize' => $pageSize,//设置地址栏当前页数参数名'pageParam' => 'p',//设置地址栏分页大小参数名'pageSizeParam' => 'pageSize',]);//获取数据$data = $user->orderBy('id DESC')->offset($page->offset)->limit($page->limit)->asArray()->all();return $this->renderPartial('index', ['data' => $data,'page' => $page,]);}
}

最后就是显示数据分页:

<!doctype html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>分页显示</title><style>.page li {display: inline-block;border: 1px solid #ccc;border-radius: 3px;padding: 2px 3px;}.page li.active a {font-weight: bold;}.page li a {text-decoration: none;}.page li a, .page li span {color: #666;}</style>
</head>
<body><ul><?php foreach ($data as $item): ?><li><?php echo $item['id']; ?>    <?php echo $item['name']; ?></li><?php endforeach; ?></ul><?phpecho \yii\widgets\LinkPager::widget(['pagination' => $page,'firstPageLabel' => '首页','lastPageLabel' => '尾页','nextPageLabel' => '下一页','prevPageLabel' => '上一页',//设置class样式'options' => ['class' => 'page'],]) ?>
</body>
</html>

最后效果如下:

转载于:https://www.cnblogs.com/jkko123/p/8668419.html

YII2中分页组件的使用相关推荐

  1. Yii2中关于组件的注册以及创建的方法详解

    2019独角兽企业重金招聘Python工程师标准>>> 了解yii组件注册与创建的过程,并发现原来yii组件注册之后并不是马上就去创建的,而是待到实际需要使用某个组件的时候再去创建对 ...

  2. 对elementui中分页组件进行二次封装

    为什么二次封装 一般在后台管理项目当中,页面功能涉及到的数据展示的地方会比较多,而其中却少不了表格,分页以及条件检索.如果代码是 copy 来又 copy 去,岂不是很没有技术含量. 而且每个项目的U ...

  3. Vue中分页组件的用法

    分页组件 <el-pagination@size-change="handleSizeChange":prev-text="$t('pages.previousPa ...

  4. 解决element-UI中分页组件显示英文

    问题: 在写vue项目的时候,发现分页控件显示英文 解决方案: src/main.js // 注释掉英文,替换成中文即可 import locale from 'element-ui/lib/loca ...

  5. 解决element-ui/element-plus中el-pagination分页组件显示英文

    解决element-ui/element-plus中el-pagination分页组件显示英文 解决方法: 在main.js或main.ts中引入中文语言 import locale from 'el ...

  6. 使用 java 的 displaytag1.2 分页组件使用步骤

    今天我的小博客项目写完了,心情挺好,发表篇 java web开发的 分页组件使用技巧吧,在这里面, 我不想 啰嗦,直接 我把我的使用方式 写了出来,希望 给 我们为 java 分页 节省更多的时间做更 ...

  7. Python分页组件

    分页组件的实现: class Pagination(object):"""自定义分页"""def __init__(self,current ...

  8. 与服务器交互的分页组件PageComponent

    2019独角兽企业重金招聘Python工程师标准>>> Ext.define('tools.PageComponent', {extend : 'Ext.Container',req ...

  9. 基于jquery的php分页,基于jQuery封装的分页组件

    前言: 由于项目需要实现分页效果,上jQuery插件库找了下,但是木有找到自己想要的效果,于是自己封装了个分页组件. 思路: 主要是初始化时基于原型建立的分页模板然后绑定动态事件并实现刷新DOM的分页 ...

最新文章

  1. 分享一个让 Ping 的输出更简单易读方法
  2. 《编码:隐匿在计算机软硬件背后的语言(美)》读书笔记三
  3. 手机设置两个操作:享受专注生活
  4. 看风水用什么罗盘最好_兰花用什么花盆栽植最好?
  5. java用内部类实现多重继承
  6. ux设计师薪水_我是如何从33岁的博物馆导游变成专业的Web开发人员和UX设计师的:我的…...
  7. 一键自动化部署web架构
  8. BZOJ3211: 花神游历各国
  9. 详解SpringCloud中RabbitMQ消息队列原理及配置,一篇就够!
  10. android中include标签的使用
  11. mysql.servet复制到哪_Mysql复制及代理
  12. delphi 字符串处理中的怪异现象与处理
  13. 你这API设计的真”辣鸡“,简直没法看!
  14. 公共云存储服务的可扩展性和性能
  15. QQ音乐接口api,包括付费音乐、无损音乐、高品质音乐地址解析接口api
  16. 查询数据库中所有列名
  17. WebGL场景的两种地面构造方法
  18. 通过c语言求得一个英文句子中的单词数量
  19. 使用虚拟机连接真实服务器,太一星晨:虚拟化和应用交付演绎珠联璧合
  20. Unity Shader graph 毒液

热门文章

  1. vb获得mysql的值,VB.NET调用MySQL存储过程并获得返回值的方法
  2. 计算机应用基础中什么是桌面,福师《计算机应用基础》在线作业二 Windows中进行系统设置的工具集是 用户可以根据自己的爱好更改显示器 键盘 鼠标器 桌面等硬件的设置...
  3. linux测试网页装载时间,如何用Flood测试Web服务器响应时间
  4. mysql connect 500_MySQL连接问题【mysql_connect和mysql_pconnect区别】
  5. nacos 本地测试_微服务架构系列之Nacos 配置核心概念
  6. MindMotion MM32F3277 SoftI2C功能测试
  7. 2021年春季学期-信号与系统-第二次作业参考答案-第四小题
  8. 通用双谐振固态特斯拉驱动器 UD2.7
  9. 工欲善其事,必先利其器 -- 这烙铁,升温有点狠
  10. 第十五届全国大学生智能车竞赛相关LOGO,文化衫,背板图片