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中自带分页类实现分页的主要内容,如果未能解决你的问题,请参考以下文章

yii2分页的使用及其扩展

python---django中自带分页类使用

thinkphp自带分页类

YII2.0自带分页

过滤类 分页类源码 APIView实现分页 JWT认证

一个通用分页类