it-blog.club
Постраничная навигация в Yii2

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

Допустим у нас на сайте есть контроллер и вьюха отвечающие за вывод списка новостей. И вам необходимо сделать постраничную навигацию по этим новостям. Ниже расположены примеры кода, которые вы можете использовать для реализации на своих сайтах. Заранее предупреждаю, что это самые банальные и простые примеры, которые работают, но без каких либо украшений.

Контроллер новостей.


public function actionNews()
{
//Делаем выборку активных элементов
$query = News::find()->where(['status' => 1]);
//Клонируем нашу выборку
$countQuery = clone $query;
//Подключаем класс пагинации. pageSize задаём кол-во записей на странице
$pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 1]);
//Работаем с урлом
$pages->pageSizeParam = false;
$models = $query->offset($pages->offset)
->limit($pages->limit)
->all();
//Передаём полученные данные во вьюху
return $this->render('news', [
'news' => $models,
'pages' => $pages,
]);
}

Код самой вьюхи


<div class="">
<?
//Циклом выводим наши новости
foreach ($news as $item) {
?>
<div>
<a href="/news/<?= $item->id?>"><?= $item->name; ?></a>
<div><?= $item->previewText;?></div>
<div><?= $item->createdAt?></div>
</div>
<? } ?>
<?
//Выводим виджет с пагинацией
echo \yii\widgets\LinkPager::widget([
'pagination' => $pages,
]);
?>
</div>

В итоге у вас получится нечто вроде вот такого:

yii2_pager.png


it-blog.club 653
Автор: Ярослав Хмель


Если Вам понравилась статья, то можете поддержать блог переведя N сумму на кофе авторам или оплату хостинга!
В любом случае спасибо! А так же не забывайте про группу в ВК
ПОИСК ПО САЙТУ
Поддержать