YII2框架中分页组件怎样使用?一文带你看懂
导读:这篇文章主要给大家分享的是YII2框架中分页组件的使用,YII2框架中分页组件的使用很方便的,YII2中已经帮我们封装好了分页组件,下面我们就来具体看看分页组件的用法,有这方面学习需要的朋友可以参考。 当数据过多,无法一页显示时,我们经常会...
这篇文章主要给大家分享的是YII2框架中分页组件的使用,YII2框架中分页组件的使用很方便的,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 (!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>
?php
echo \yii\widgets\LinkPager::widget([
'pagination' =>
$page,
'firstPageLabel' =>
'首页',
'lastPageLabel' =>
'尾页',
'nextPageLabel' =>
'下一页',
'prevPageLabel' =>
'上一页',
//设置class样式
'options' =>
['class' =>
'page'],
]) ?>
/body>
/html>
最后效果如下:
关于YII2框架中分页组件的使用就介绍到这,上述示例具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多YII2框架的内容,大家可以关注其它的相关文章。
文本转载自脚本之家
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: YII2框架中分页组件怎样使用?一文带你看懂
本文地址: https://pptw.com/jishu/653096.html
