Yii2中自带分页类实现分页
Posted 先生丨孙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2中自带分页类实现分页相关的知识,希望对你有一定的参考价值。
转 http://www.cnblogs.com/gyrgyr/p/5249392.html
1.首先写控制器层
先引用pagination类
use yii\\data\\Pagination;
写自己的方法:
function actionFenye(){
$data = 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="/yii/frontend/web/assets/76f2e072/css/bootstrap.css" rel="stylesheet">
这样就可以随心所欲的改啦..(*^__^*)
大功告成..
需要深度学习的链接: http://blog.csdn.net/m_422744746/article/details/51470052
以上是关于Yii2中自带分页类实现分页的主要内容,如果未能解决你的问题,请参考以下文章