Вопрос такой умеет ли ActiveRecords искать сразу массив значений, попытаюсь объяснить на примере, есть таблица можно сказать любая, просто в которой есть id, есть к ней модель, как можно найти первый третий и десятый элемент таблицы
Пробовал сделать так
$arr = array(1,2,10);
$model = Model::model()->findAll('id = :id',array(id=>$arr));
в данном случае модель получаю пустой, может как то по другому нужно ? или он вообще так не умеет?
Mougrim
(Rinat)
June 1, 2010, 9:46am
2
Вопрос такой умеет ли ActiveRecords искать сразу массив значений, попытаюсь объяснить на примере, есть таблица можно сказать любая, просто в которой есть id, есть к ней модель, как можно найти первый третий и десятый элемент таблицы
Пробовал сделать так
$arr = array(1,2,10);
$model = Model::model()->findAll('id = :id',array(id=>$arr));
в данном случае модель получаю пустой, может как то по другому нужно ? или он вообще так не умеет?
Все просто
$arr = array(1,2,10);
$oCriteria = new CDbCriteria();
$oCriteria->addInCondition('id', $arr);
Model::model()->findAll($oCriteria);
Рекомендую почитать гайд на эту тему и посмотреть API для класса CDbCriteria.
ksavelyev
(Konstantin Savelyev)
June 4, 2010, 8:18pm
3
Mougrim:
Все просто.
Все еще проще. При условии, что искать нужно по первичному ключу. findAllByPK это делает, смотрим описание первого аргумента.