LinkPageウィジェットを使用してYii2でページャーを作成する方法を探していました。
例はありますか?私はYiiが初めてなので、どんな助けでもいいでしょう。
それは単純だ
$dataProvider = new ActiveDataProvider([
'query' => User::find(),
'pagination' => array('pageSize' => 50),
]);
echo \yii\widgets\LinkPager::widget([
'pagination'=>$dataProvider->pagination,
]);
または、dataProviderを使用しない場合は、これを使用する必要があります。
$query = User::find();
$pagination = new Pagination(['totalCount' => $query->count(), 'pageSize'=>30]);
echo \yii\widgets\LinkPager::widget([
'pagination' => $pagination,
]);
コントローラー内:
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,
]);
}
ビューファイル内:
foreach ($models as $model) {
// display $model here
}
// display pagination
echo LinkPager::widget([
'pagination' => $pages,
]);
コントローラーで
$searchModel = new CourseModuleMasterSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination = ['pageSize' => 20];//add this line
以下は、ページネーションを追加するには単純すぎます。
コントローラーを追加するだけで、
$dataProvider = new ActiveDataProvider([
'query' => Post::find(),
'pagination' => [
'pageSize' => 20,
],
]);
Yii2はインデックスページにページネーションをもたらします https://yii2-framework.readthedocs.io/en/stable/guide/output-data-widgets/