Как организовать реляционный запрос с пагинацией в yii?

Есть таблица Категории, Продукты и КатегорияПродукт. (один продукт может принадлежать нескольким категориям).
На странице категории нужно вывести все продукты категории и постраничной разбивкой по 20 шт.
Поступаю так. Беру категорию со всеми продуктами
$category = Category::model()->with('products')->findByAttributes(array('url' => $alias));

Вот зависимость в модели
'productCategory' => array(self::HAS_MANY, 'ProductCategory', 'category_id'),
'products'=> array(self::HAS_MANY, 'Product', 'product_id', 'through' =>'productCategory'),

А дальше стопор. Как разбить их на порции по 20шт?
  • Вопрос задан
  • 2293 просмотра
Решения вопроса 1
fornit1917
@fornit1917
У категории можете дернуть getRelated, указав третьим параметров объект CDbCriteria, в котором в свою очередь указаны limit и offset, необходимые для пагинации (www.yiiframework.com/doc/api/1.1/CActiveRecord#get... )

$category = Category::model()->with('products')->findByAttributes(array('url' => $alias));
$criteria = new CDbCriteria();
$criteria->limit = 20;
$criteria->offset = 0;
$products = $category->getRelated('products', false, $criteria); //получите первые 20 продуктов категории
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы