Доброй ночи, подскажите знатоки Yii.
Есть каталог дисков (Drivers), у каждого диска есть жанры (genres) (диск может относиться к нескольким жанром).
Связал их через many_to_many
public function relations()
{
return array(
'genres' => array(self::MANY_MANY, 'Genres', 'drives_in_genres(driver_id,genre_id)'),
);
}
Не могу понять как работает поиск по множественным записям, он толи группирует их то ли незнаю… подскажите.
вот метод поиска
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('user',$this->user);
$criteria->compare('name',$this->name,true);
if ( is_numeric($this->year_from) ) {
$criteria2 = new CDbCriteria;
$criteria2->condition = 'year '.( !isset($this->year_to) || intval($this->year_to) <=0? "=": ">=" ).' :year_from';
$criteria2->params = array(':year_from' => intval($this->year_from));
$criteria->mergeWith($criteria2);
}
if ( is_numeric($this->year_to) ) {
$criteria2 = new CDbCriteria;
$criteria2->condition = 'year '.( !isset($this->year_from) || intval($this->year_from) <=0? "=": "<=" ).' :year_to';
$criteria2->params = array(':year_to' => intval($this->year_to));
$criteria->mergeWith($criteria2);
}
//// тут я подцепляю записи и ищу их
$criteria->compare('genre_id',$this->genresIds);
$criteria->with=array('drivesInGenres');
// когда этот параметр выключен вывод идет нормально, а поиск не работает
$criteria->together=true;
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination' => array(
'pageSize' => 20,
),
));
}
-
Вопрос задан
-
3475 просмотров