Как создать пейджер в Yii2?


Я искал, как создать пейджер в Yii2 с помощью виджета Linkpage.

Есть ли какой-нибудь пример? Я новичок в Yii, так что любая помощь была бы полезна.

Author: zishe, 2014-04-28

3 answers

Это просто

$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,
]);
 40
Author: Alex, 2015-01-22 09:01:20

В контроллере:

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,
]);
 4
Author: Nizar Ali Hunzai, 2015-09-27 07:53:34

Ниже слишком просто для добавления разбивки на страницы,

Нам просто нужно добавить контроллер,

$dataProvider = new ActiveDataProvider([
    'query' => Post::find(),
    'pagination' => [
        'pageSize' => 20,
    ],
]);

Yii2 приведет к разбиению на страницы индекса, https://yii2-framework.readthedocs.io/en/stable/guide/output-data-widgets/

 0
Author: Jothi, 2018-06-21 13:55:31