AR запросы

Делаю довольно простые вещи.




        $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), да вот не могу пока джоинить таблицы в АР (

Время идет, а работать надо. Потом когда научусь, исправлю )

Лучше разберитесь с джоином чем изобретать велосипед.

А по поводу запроса, советую сделать логирование в браузер или файл тех запросов что создает Yii и посмотреть как он его себе представляет

Буду очень признателен если расскажите как логировать запросы.

просто самому интересно что он там по моим моделям и связям создает =)

Вот эта штука очень помогает.

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'

     ),


      ),






тоже сталкивался с проблемой подобного запроса, в итоге посмотрев API нашел решение:

$criteria->addInCondition(‘video_id’,implode(’,’, $videoIds),’’);

Супер, то что надо.

Спасибо, пошел ковырятся )

это тоже попробую )

то что надо, сразу нашел проблемы )

спасибо еще раз