raa
(Rudenkosasha)
1
Делаю довольно простые вещи.
$videoIds = array(2,3,4,5,6,7,78,9); // example, but non-empty
$criteria = new CDbCriteria();
$criteria->condition = "video_id in (:video_id)";
$criteria->params = array(':video_id' => implode(',', $videoIds) );
$criteria->order = 'publishdate DESC';
$criteria->limit = Yii::app()->params['videosPerPage'];
$data = Video::model()->findAll($criteria);
и почему-то в $data лежит только объект с первым элементом массива.
Где я ошибся ?
А, если не понятно, то пробую сделать такой вот запрос:
select * from video where video_id in (3,4,5,6,7,78,9) order by publishdate DESC limit 18
P.S. почему делаю через video_id in (set), да вот не могу пока джоинить таблицы в АР (
Время идет, а работать надо. Потом когда научусь, исправлю )
Zolter
(Zolter Od)
2
Лучше разберитесь с джоином чем изобретать велосипед.
А по поводу запроса, советую сделать логирование в браузер или файл тех запросов что создает Yii и посмотреть как он его себе представляет
raa
(Rudenkosasha)
3
Буду очень признателен если расскажите как логировать запросы.
просто самому интересно что он там по моим моделям и связям создает =)
iGrog
(Laritari)
4
Вот эта штука очень помогает.
http://code.google.com/p/yiidebugtb/
в config дописать:
'import'=>array(
'application.extensions.yiidebugtb.*',
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CWebLogRoute',
'levels'=>'error, warning, trace, info',
'showInFireBug'=>true,
),
array(
'class'=>'XWebDebugRouter',
'config'=>'alignLeft, opaque, runInDebug, fixedPos, collapsed',
'levels'=>'error, warning, trace, profile, info'
),
),
pirrat
(Pstudia)
5
тоже сталкивался с проблемой подобного запроса, в итоге посмотрев API нашел решение:
$criteria->addInCondition(‘video_id’,implode(’,’, $videoIds),’’);
raa
(Rudenkosasha)
6
Супер, то что надо.
Спасибо, пошел ковырятся )
raa
(Rudenkosasha)
8
то что надо, сразу нашел проблемы )
спасибо еще раз