Yii分页方法

Yii2.0的分页方法有两种,

第一种是调用自带的分页组件,以及渲染组件,

第二种则是半调用,仍然调用分页组件但可以自己渲染views页面

方法一:使用ActiveDataProvider 和 GridView

[php]   view plain  copy
  1. public function actionIndex(){  
  2.         $dataProvider = new ActiveDataProvider([  
  3.             'query' => ArticleClass::find(),  
  4.             'pagination' => [  
  5.                 'pagesize' => '2',  
  6.              ]  
  7.         ]);  
  8.         return $this->render('index', [  
  9.             'dataProvider' => $dataProvider,  
  10.         ]);  
  11. }  

只需要在action中添加pagination属性指明pagesize参数即可,view使用GridView,效果如下


方法二:控制器中引入分页类,并在views中引入分页渲染

controller中:

[php]   view plain  copy
  1. use yii\data\Pagination;  
  2.   
  3.   
  4. public function actionIndex(){  
  5.         $query = ArticleClass::find();  
  6.         $countQuery = clone $query;  
  7.         $pageSize = 2;  
  8.         $pages = new Pagination(['totalCount' => $countQuery->count(),'pageSize' => $pageSize]);  
  9.         $models = $query->offset($pages->offset)  
  10.             ->limit($pages->limit)  
  11.             ->all();  
  12.         return $this->render('index', [  
  13.             'models' => $models,  
  14.             'pages' => $pages,  
  15.         ]);  
  16. }  

view中:

[php]   view plain  copy
  1. use yii\widgets\LinkPager;  
  2.   
  3.   
  4. <?php  
  5.         //循环展示数据  
  6.         foreach ($models as $model) {  
  7.             echo "<li>".$model['class_name']."</li>";  
  8.         }  
  9. ?>  
  10.       
  11.     <?= LinkPager::widget([   
  12.         'pagination' => $pages,   
  13.         'nextPageLabel' => '下一页',   
  14.         'prevPageLabel' => '上一页',   
  15.         'firstPageLabel' => '首页',   
  16.         'lastPageLabel' => '尾页',  
  17.     ]); ?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值