Вот пример:
Автосайт. Объявления о продаже авто.
Есть таблица с объявлениями advert, есть хранилище изображений storagefile, между ними кросс advert_storagefile.
Кросс потому, что не только картинки объявлений в storagefile хранятся, там вообще все файлы.
Это не суть, прошу не заострять внимание на этом.
Далее мне нужно выбрать последние объявления, у которых есть фотки.
И тут парадокс, без введения нового поля в таблицу advert.photocount использовать для этого модели не получится ((((((((((
То есть я вынужден использовать чтото типа:
Код: Выделить всё
$reader = Yii::app()->db->createCommand()
->select('m.title mtitle, m.id mid, mod.title modtitle, mod.id modid, a.*')
->from(CarsAdvert::model()->tableName().' a')
->rightjoin(CarsMarks::model()->tableName().' m', 'a.markId=m.id')
->rightjoin(CarsModels::model()->tableName().' mod', 'a.modelId=mod.id')
->rightjoin(StorageFileCarsAdvers::model()->tableName().' sfc', 'sfc.advertId=a.id')
->order('a.date DESC DESC')
->query();
Нет, можно, конечно этим запросом выбрать только id объявлений, потом выбрать по ключам их при помощи моделей.
Но это ну как то не правильно, уже 2 запроса получается...
Вобщем, пошел я делать еще поле photocount в таблице объявлений, и соотв-но буду искать все места где может измениться количество картинок и т.п... ((
Печалька...
Или я чего не допер еще в Yii? Просветите меня пожалуйста...