[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: CLinkPager как получить количество строк YII
lodas
Здравствуйте. Пишу на YII. Делаю постраничную разбивку, в контроллере пишу:
 //в текущий момент в базе 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 одни и те же товары. что я делаю не так? может нужно по другому получать количество товара?
TMake
Вы применяете лимит для criteria который ни где не используется.
Предлагаю вам рассмотреть еще раз пример использования CPagination http://rmcreative.ru/blog/post/postranichnaja-razbivka-v-yii
lodas
stepan, логично, но не понятно как к такому запросу:
 $tovar =Product::model()->with('zapros_na_prod')->findAll('id_kat=:cat',array(':cat'=>$_GET['categ']));

внести изменения в критерий? Просто запрос большой, не понятно куда вставить в этом запросе $criteria?
TMake
Как обычно:
$tovar =Product::model()->findAll($criteria);


А самому $criteria указываешь нужные тебе параметры, в том числе и with.
Свернутый текст

Из примеров:
$criteria=new CDbCriteria;
$criteria->with=array(
'author.profile',
'author.posts',
'categories',
);

$posts=Post::model()->findAll($criteria);
bestxp
zapros_na_prod у тебя кажется has_many поэтому грузит в один запрос
тебе надо добавить togheter добавить смотри в доку
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.