SetTableAlias - или я не понимаю или...

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Аватара пользователя
Koduc
Сообщения: 140
Зарегистрирован: 2011.02.15, 18:56

SetTableAlias - или я не понимаю или...

Сообщение Koduc » 2012.02.29, 08:20

В версии 1.1.10 нашел неприятную вещь. В моделе делаем:

Код: Выделить всё

    public function __construct($scenario='insert'){
        $this->SetTableAlias('orders');
        parent::__construct($scenario);
    }
 
и в контроллере вызываем элементарное

Код: Выделить всё

$model = Orders::model()->findByPk(1);
 
В результате получаем ошибку:
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'orders.id' in 'where clause'. The SQL statement executed was: SELECT * FROM `doors_orders` `t` WHERE `orders`.`id`=1 LIMIT 1

Откатываюсь на версию 1.1.8 - там все работает. Подключаю yiilite - снова отваливается. Это я что-то не так делаю или всётаки баг?
Разработка на Yii: monoray.ru
Открытое бесплатное решение для создания сайтов по аренде/продаже недвижимости: Open Real Estate

Аватара пользователя
andy_s
Сообщения: 127
Зарегистрирован: 2012.01.22, 13:15

Re: SetTableAlias - или я не понимаю или...

Сообщение andy_s » 2012.02.29, 10:49

Никогда не пробовал делать подобное, для установки псевдонима таблицы нужно использовать defaultScope(): 'alias'=>'orders'.

Аватара пользователя
Koduc
Сообщения: 140
Зарегистрирован: 2011.02.15, 18:56

Re: SetTableAlias - или я не понимаю или...

Сообщение Koduc » 2012.02.29, 11:14

Тогда зачем это (с версии 1.1.3):
Появилась возможность с помощью CActiveRecord::setTableAlias() указывать в AR-классах псевдоним таблицы для использования в find-методах.
Разработка на Yii: monoray.ru
Открытое бесплатное решение для создания сайтов по аренде/продаже недвижимости: Open Real Estate

Ответить