yii2 使用分页

方法一

控制器内


//other code
use yii\data\Pagination;
public function actionArticlelist()
    {
        //分页读取类别数据
        $model = Article::find()->with('cate');
        $pagination = new Pagination([
            'defaultPageSize' => 3,
            'totalCount' => $model->count(),
        ]);

        $model = $model->orderBy('id ASC')
            ->offset($pagination->offset)
            ->limit($pagination->limit)
            ->all();

        return $this->render('index', [
            'model' => $model,
            'pagination' => $pagination,
        ]);
    }
?>
---

视图内


use yii\widgets\LinkPager;
use yii\helpers\Html;
use yii\helpers\Url;
//other code
foreach ($models as $model) {
    // 在这里显示 $model
}

// 显示分页
echo LinkPager::widget([
    'pagination' => $pagination
]);
?>

方法二

控制器内


        $query = Article::find()->with('cate')->orderBy(create_at desc);

        $provider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 3,
            ],
        ]);
        return $this->render('index', [
            'model' => $query,
            'dataProvider' => $provider
        ]);
?>

视图中


echo \yii\grid\GridView::widget(
    [
        'dataProvider' => $providerData,
    ]
);

你可能感兴趣的:(yii)