YII2框架中分页组件的使用方法示例
发布:smiling 来源: PHP粉丝网 添加日期:2022-02-20 09:22:53 浏览: 评论:0
本文实例讲述了YII2框架中分页组件的使用方法,分享给大家供大家参考,具体如下:
当数据过多,无法一页显示时,我们经常会用到分页组件,YII2中已经帮我们封装好了分页组件。
首先我们创建操作数据表的AR模型:
- <?php
- namespace app\models;
- use yii\db\ActiveRecord;
- class MyUser extends ActiveRecord
- {
- public static function tableName()
- {
- return '{{%user}}';
- }
- }
然后创建分页的控制器:
- <?php
- namespace 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 (!emptyempty($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>
- <?php
- echo \yii\widgets\LinkPager::widget([
- 'pagination' => $page,
- 'firstPageLabel' => '首页',
- 'lastPageLabel' => '尾页',
- 'nextPageLabel' => '下一页',
- 'prevPageLabel' => '上一页',
- //设置class样式
- 'options' => ['class' => 'page'],
- ]) ?>
- </body>
- </html>
最后效果如下:
Tags: YII2分页组件
- 上一篇:YII2框架中自定义用户认证模型,完成登陆和注册操作示例
- 下一篇:最后一页

推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)