Clinkpager Как Получить Количество Строк

Здравствуйте. Делаю постраничную разбивку, в контроллере пишу:


 //в текущий момент в базе 13 товаров

        $tovar =Product::model()->with('zapros_na_prod')->findAll('id_kat=:cat',array(':cat'=>$_GET['categ']));

        $criteria = new CDbCriteria();

        //получаю количество строк в таблице

        $count=count ( $tovar );

        $pages=new CPagination($count);

        // элементов на страницу

        $pages->pageSize=12;

        $pages->applyLimit($criteria);

В итоге несмотря на то что я указал выводить на одной странице 12 элементов- он выводит на двух страницах по 13 одни и те же товары. что я делаю не так? может нужно по другому получать количество товара?

$pages->applyLimit() вносит изменения в критерий, а к findAll() вы его не применяете…

Логично, но не понятно как к такому запросу:


 $tovar =Product::model()->with('zapros_na_prod')->findAll('id_kat=:cat',array(':cat'=>$_GET['categ']));

внести изменения в критерий? Просто запрос большой, не понятно куда вставить в этом запросе $criteria?

Должно быть примерно так:




$criteria = new CDbCriteria();

$criteria->addColumnCondition(array('id_kat'=>$_GET['categ']));

$pages = new CPagination(Product::model()->count($criteria));

$pages->pageSize = 12;

$pages->applyLimit($criteria);

$tovar = Product::model()->with('zapros_na_prod')->findAll($criteria);



Тут, кстати, есть пример: http://www.yiiframework.com/doc/api/1.1/CPagination