SiteController.php
dosyasında actionIndex
içinde aşağıdaki gibi sorgu ile tüm kayıtlar çekilir ve istenilen view
sayfasına gönderlir.
public function actionIndex()
{
use yii\data\Pagination;
$query = \backend\models\Posts::find();
$count = $query->count();
$pagination = new Pagination(['totalCount' => $count, 'pageSize'=>10]);
//pageSize özelliği her sayfada kaç kayıt gösterilecek
$posts = $query->offset($pagination->offset)
->orderBy('postID desc')
->limit($pagination->limit)
->all();
return $this->render('index', [
'posts' => $posts,
'pagination' => $pagination,
]);
}
view
sayfasında sayfalama işlemleri için aşağıdaki kodları kullanabiliriz.
<?php foreach($posts as $p=>$post):?>
<h2><?=$post->postTitle?></h2>
<?php endforeach;?>
<?php use yii\widgets\LinkPager;?>
<nav>
<?=
LinkPager::widget([
'pagination' => $pagination,
'options' => ['class' => 'pagination'],//ul class
'linkOptions' => ['class' => 'page-link'],
'pageCssClass' => 'page-item',//li class
'firstPageCssClass' => 'page-item first',
'lastPageCssClass' => 'page-item last',
'prevPageCssClass' => 'page-item prev',
'nextPageCssClass' => 'page-item next',
'activePageCssClass' => 'current',
'disabledPageCssClass' => 'disabled',
'maxButtonCount' => 4,
//'nextPageLabel' => '>',
//'prevPageLabel' => '<',
'firstPageLabel' => 'Önceki',
'lastPageLabel' => 'Sonraki',
'registerLinkTags' => false,
'hideOnSinglePage' => true,
]);
?>
</nav>