W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(dāng)一次要在一個(gè)頁面上顯示很多數(shù)據(jù)時(shí),通過需要將其分為 幾部分,每個(gè)部分都包含一些數(shù)據(jù)列表并且一次只顯示一部分。這些部分在網(wǎng)頁上被稱為 分頁。
如果你使用?數(shù)據(jù)提供者?和?數(shù)據(jù)小部件?中之一, 分頁已經(jīng)自動(dòng)為你整理。否則,你需要?jiǎng)?chuàng)建 \yii\data\Pagination 對(duì)象為其填充數(shù)據(jù),例如 \yii\data\Pagination::$totalCount, \yii\data\Pagination::$pageSize 和 \yii\data\Pagination::$page,在 查詢中使用它并且填充到 \yii\widgets\LinkPager。
首先在控制器的動(dòng)作中,我們創(chuàng)建分頁對(duì)象并且為其填充數(shù)據(jù):
function actionIndex()
{
$query = Article::find()->where(['status' => 1]);
$countQuery = clone $query;
$pages = new Pagination(['totalCount' => $countQuery->count()]);
$models = $query->offset($pages->offset)
->limit($pages->limit)
->all();
return $this->render('index', [
'models' => $models,
'pages' => $pages,
]);
}
其次在視圖中我們輸出的模板為當(dāng)前頁并通過分頁對(duì)象鏈接到該頁:
foreach ($models as $model) {
// 在這里顯示 $model
}
// 顯示分頁
echo LinkPager::widget([
'pagination' => $pages,
]);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: