Постраничная навигация в Yii 2

Рассмотрим пример простой постраничной навигации. Для этого будем использовать класс Pagination.

Подключаем класс:

use yii\data\Pagination;

Описываем действие в контроллере:

public function actionIndex() {
	$query = Companies::find()->where(['status' => 3]);
	$countQuery = clone $query;
	$pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 10]);
	$pages->pageSizeParam = false;
	$models = $query->offset($pages->offset)->limit($pages->limit)->all();
	
	return $this->render('index', [
		'models' => $models,
		'pages' => $pages,
	]);
}

В представление вставляем следующий код:

use yii\widgets\LinkPager;

foreach ($models as $model) {
    echo $model->name;
}

echo LinkPager::widget(['pagination' => $pages]);