牛骨文教育服务平台(让学习变的简单)
博文笔记

Yii2.0自定义分页方法

创建时间:2017-01-10 投稿人: 浏览次数:170

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 yiidataPagination;


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 yiiwidgetsLinkPager;


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

效果如下:



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。