برای ساخت 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, ]);