首页 > 代码库 > Yii2中自带分页类实现分页
Yii2中自带分页类实现分页
转 http://www.cnblogs.com/gyrgyr/p/5249392.html
1.首先写控制器层
先引用pagination类
use yii\data\Pagination;
写自己的方法:
function actionFenye(){
$data = http://www.mamicode.com/Field::find(); //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写
$pages = new Pagination([‘totalCount‘ =>$data->count(), ‘pageSize‘ => ‘2‘]); //实例化分页类,带上参数(总条数,每页显示条数)
$model = $data->offset($pages->offset)->limit($pages->limit)->all();
return $this->renderPartial(‘fenye‘,[
‘model‘ => $model,
‘pages‘ => $pages,
]);
}
2.model层就是直接用../yii/frontend/web/index.php?r=gii 生成的model(详细链接)
3.最后是显示页面
<?php
use yii\widgets\LinkPager;
?>
<?php foreach($model as $key=>$val){ ?>
<?= $val->Id; ?> //相当于 <?php echo $val[‘Id‘]; ?>
<?= $val->Field; ?> //相当于 <?php echo $val[‘Field‘]; ?>
<?php } ?>
<?=
LinkPager::widget([
‘pagination‘ => $pages,
]);
?>
剧终..................................................
最后说说本人在做的时候遇到的问题,希望能帮到大家:
我做出来样式怎么这么丑,人家的分页页码都是自带样式的,之后发现,
当你在控制器层加上这个 $this->layout=‘main‘;(方法刚开始加),也就是引入了这个框架最原始的公共头部,这个main.php在view/layouts/main.php ,然后在控制器渲染页面的
代码那 的renderPartial,改为 render, renderPartial是表示显示 显示页面的时候不加框架自带的公共头部, 为什么要引入这个原始的公共头部呢?? 是因为他这个头部里面有我们分页需要的样式,引入后成这个样子了:
这个时候就基本完美了,样式也出来了,
可是我不想要她的公共头部,太丑了,或者,我要定义自己的公共头,但是我还要他的样式,这个时候,你可以在这个显示页面查看源代码,找找他的css样式,
我查看源码后,把它的css样式粘贴到我的显示页面
<link href="http://www.mamicode.com/yii/frontend/web/assets/76f2e072/css/bootstrap.css" rel="stylesheet">
这样就可以随心所欲的改啦..(*^__^*)
大功告成..
需要深度学习的链接: http://blog.csdn.net/m_422744746/article/details/51470052
Yii2中自带分页类实现分页