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

posted @ 2017-05-02 10:36  先生丨孙  阅读(269)  评论(0编辑  收藏  举报