ساخت pagination در Yii2

برای ساخت pagination در فریم ورک Yii2 با استفاده از کوئری و دو گزینه ی limit و offset و همچنین کلاسی که خود فریم ورک برای این کار اختصاص داده استفاده می کنیم :
ابتدا مقاله هایی را که میخواهیم به کاربر نمایش دهیم را فراخوانی میکنیم.
سپس با استفاده از کلاس pagination دیتاها را صفحه بندی می کنیم
با متدtotalCount مجموع رکورد هارا تنظیم کردیم
با استفاده از limit و offset میتوانیم مشخص کنیم در هر صفحه چند مقاله نمایش داده شود وهر صفحه چندتا چندتا مقالات را صفحه بندی کند.
در آخر نیز این دیتاهارا به view ارسال می نماییم

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,
    ]);
}

برای نمایش در view می توانید به صورت زیر عمل نمایید :

foreach ($models as $model) {
    // display $model here
}
// display pagination
echo LinkPager::widget([
    'pagination' => $pages,
]);

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *