Relations И Condition

Наткнулся на этот топик, то что надо.


class Characters extends CActiveRecord {


...


public function relations() {

        return array(

            'equip' => array(self::HAS_MANY, 'Invertory', 'storage_type_id', 'on' => 'invertory.storage_type=1')

        );

    }



Распечатываю $model->equip, получаю ошибку “CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘invertory.storage_type’ in ‘where clause’.”

Вот запрос из stack trace:




SELECT `equip`./* очень длинный список полей */

FROM `invertory` `equip` 

WHERE (invertory.storage_type=1) AND (`equip`.`storage_type_id`=:ypl0)



Ну потому что equip.storage_type=1 должно быть.

В запросе же прямо видно


FROM `invertory` `equip`

Хотя вот так


FROM `invertory` AS `equip` 

было бы понятнее, да.

UPD: хотя и не факт, что я Вас правильно понял, может там вообще t.storage_type должно быть…

Но у меня нет такой таблицы, только invertory с полем storage_type. Я же в condition насильно указал invertory.storage_type.

P.S. Я вижу что делается в запросе, я не понимаю, почему фреймворк его так генерирует.

Это не таблица, это альяс таблицы inventory.

Ну хорошо, что мне переделать, чтобы оно заработало?

Так написал же уже.

Замените


'on' => 'invertory.storage_type=1'

на


'on' => 'equip.storage_type=1'