首页 > 开发 > PHP > 正文

Yii2分页的使用及其扩展方法详解

2024-05-04 22:30:11
字体:
来源:转载
供稿:网友

前言:

说明下我们本篇文章都要讲哪些内容

分页的使用,一步一步的教你怎么做

分页类LinkPager和Pagination都可以自定义哪些属性

分页类LinkPager如何扩展成我们所需要的

第一步,我们来看看yii2自带的分页类该如何去使用?

1、controller action

use yii/data/Pagination;$query = Article::find()->where(['status' => 1]);$countQuery = clone $query;$pages = new Pagination(['totalCount' => $countQuery->count()]);$models = $query->offset($pages->offset)  ->limit($pages->limit)  ->all();return $this->render('index', [  'models' => $models,  'pages' => $pages,]);

2、View

use yii/widgets/LinkPager;//循环展示数据foreach ($models as $model) {  // ......}//显示分页页码echo LinkPager::widget([  'pagination' => $pages,])

代码基本上可以完全拷贝,修改部分数据即可,相信大多数人都是看得懂的。

我们接下来看第二步,自带的分页类都可以定义哪些属性

首先我们说说LinkPager组件

.pagination参数必填,这个是我们Pagination类的实例

默认分页类是下面这个样子的

 

.上下页按钮以及10个按钮

首先,我们把上下页的按钮修改成中文

<?= LinkPager::widget([   'pagination' => $pages,   'nextPageLabel' => '下一页',   'prevPageLabel' => '上一页', ]); ?>

如果你不想要显示上下页,可以将prevPageLabel和nextPageLabel设置为false

<?= LinkPager::widget([   'pagination' => $pages,   'nextPageLabel' => false,   'prevPageLabel' => false, ]); ?>

默认不显示首页也尾页,如果你需要,可以这样设置

<?= LinkPager::widget([   'pagination' => $pages,   'firstPageLabel' => '首页',   'lastPageLabel' => '尾页', ]); ?>

如果你的数据过少,不够2页,默认不显示分页,如果你需要,设置hideOnSinglePage=false即可

<?= LinkPager::widget([   'pagination' => $pages,   'hideOnSinglePage' => false, ]); ?>

默认显示的页码为10页,可以设置maxButtonCount为你想要展示的页数

<?= LinkPager::widget([   'pagination' => $pages,   'maxButtonCount' => 5, ]); ?>

有些人不喜欢默认的样式,想要分页带上自己的样式,可以设置options,不要忘了自行实现pre,next,disabled等样式

<?= LinkPager::widget([   'pagination' => $pages,   'options' => ['class' => 'm-pagination'], ]); ?>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表