Пагинация в Yii Framework

Небольшая заметка о том как сделать пагинацию (pagination) в Yii Framework (1 версии).

Простейшая пагинация выглядит так:

В контроллере добавляем:

public function actionIndex()
{
    $criteria = new CDbCriteria();
 
    $count = Article::model()->count($criteria);
 
    $pages = new CPagination($count);
    
    $pages->pageSize = 10; // элементов на страницу
    $pages->applyLimit($criteria);
 
    $models = Article::model()->findAll($criteria);
 
    $this->render('index', array(
        'models' => $models,
        'pages' => $pages
    ));
}

А в View добавляем:

<?php foreach ($models as $model): ?>
  // выводим модели
<?php endforeach ?>
 
// рисуем переключатель страниц
<?php $this->widget('CLinkPager', array(
    'pages' => $pages,
)) ?>

На этом всё, пагинация в Yii реализуется очень просто.

98