Yii2.0自定义分页方法

本文介绍了Yii2.0框架下两种不同的分页方法。第一种是利用ActiveDataProvider和GridView进行分页和展示;第二种是部分使用内置分页组件,允许在views页面自定义渲染。详细步骤包括在action中设置pagination属性以及在views中单独处理分页的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

方法一:使用ActiveDataProvider 和 GridView

public function actionIndex(){
        $dataProvider = new ActiveDataProvider([
            'query' => ArticleClass::find(),
            'pagination' => [
                'pagesize' => '2',
             ]
        ]);
        return $this->render('index', [
            'dataProvider' => $dataProvider,
        ]);
}

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


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

controller中:

use yii\data\Pagination;


public function actionIndex(){
        $query = ArticleClass::find();
        $countQuery = clone $query;
        $pageSize = 2;
        $pages = new Pagination(['totalCount' => $countQuery->count(),'pageSize' => $pageSize]);
        $models = $query->offset($pages->offset)
            ->limit($pages->limit)
            ->all();
        return $this->render('index', [
            'models' => $models,
            'pages' => $pages,
        ]);
}

view中:

use yii\widgets\LinkPager;


<?php
        //循环展示数据
        foreach ($models as $model) {
            echo "<li>".$model['class_name']."</li>";
        }
?>
    
    <?= LinkPager::widget([ 
        'pagination' => $pages, 
        'nextPageLabel' => '下一页', 
        'prevPageLabel' => '上一页', 
        'firstPageLabel' => '首页', 
        'lastPageLabel' => '尾页',
    ]); ?>

效果如下:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值