ошибка -Column is ambiguous
ошибка -Column is ambiguous
есть модель, сделал в defaultScope условие 'condition'=>'created<NOW()'
проблема в том, что у связных таблиц есть колонка с таким же именем, и вылетает ошибка -Column is ambiguous
если писать условие так 'condition'=>'table_name.created<NOW()' падает изза того, что yii в запросах используются генерированные алиасы для таблиц
как разрулить?
проблема в том, что у связных таблиц есть колонка с таким же именем, и вылетает ошибка -Column is ambiguous
если писать условие так 'condition'=>'table_name.created<NOW()' падает изза того, что yii в запросах используются генерированные алиасы для таблиц
как разрулить?
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: ошибка -Column is ambiguous
использовать алиасы, у меня от этой ошибке "Column is ambiguous" нервный тик, намучался.
пока не выработал привычку в каждой модели
пока не выработал привычку в каждой модели
Код: Выделить всё
function defaultScope(){
return array(
'alias'=>'какой-то псевдоним, обычно название таблицы или модели'
);
}
Жду Yii 3!
Re: ошибка -Column is ambiguous
присоединяюсь к @mc-bear, намучался тоже, когда много связанных моделей и в каждой есть status,created,modified,type.
Re: ошибка -Column is ambiguous
подозреваю что это не единственное место, где нужно прописать алиас? потому что вываливает ошибку что не найдена колонка t.имяmc-bear писал(а):использовать алиасы, у меня от этой ошибке "Column is ambiguous" нервный тик, намучался.
пока не выработал привычку в каждой моделиКод: Выделить всё
function defaultScope(){ return array( 'alias'=>'какой-то псевдоним, обычно название таблицы или модели' ); }
в relations еще надо прописать или где?
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: ошибка -Column is ambiguous
установив алиас, теперь везде где писал алиас `t` нужно заменить на тот что в скоупе )
Жду Yii 3!
Re: ошибка -Column is ambiguous
а мне вот это помогает:
.... while the alias name for a relational table is the same as the corresponding relation name by default
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: ошибка -Column is ambiguous
в случае ТС это не поможет, он не может в defaultScope указать условие, т.к. не всегда заранее известно имя связи с этой модельюxoma писал(а):а мне вот это помогает:.... while the alias name for a relational table is the same as the corresponding relation name by default
Жду Yii 3!
-
- Сообщения: 350
- Зарегистрирован: 2009.09.17, 16:47
- Откуда: Санкт-Петербург
- Контактная информация:
Re: ошибка -Column is ambiguous
Сам использую данный подход с указанием в defaultScope alias, но возникают проблемы когда используешь through. К примеру джоин самой себя и т.п.
Предупрежден - значит вооружен.
devKP.ru
devKP.ru
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: ошибка -Column is ambiguous
в данной связи можно указать alias другойб или он перекрывается defaultScope ?SpiLLeR писал(а):Сам использую данный подход с указанием в defaultScope alias, но возникают проблемы когда используешь through. К примеру джоин самой себя и т.п.
Жду Yii 3!
-
- Сообщения: 350
- Зарегистрирован: 2009.09.17, 16:47
- Откуда: Санкт-Петербург
- Контактная информация:
Re: ошибка -Column is ambiguous
Да, defaultScope перекрывает то что указано в relations(), но можно обойти, через указания в отношении:
Если убрать 'alias'=>'test', то будет ошибка.
Код: Выделить всё
//model
public function relations() {
return array(
'products' => array(self::HAS_MANY, 'Product', 'brand_id', 'alias'=>'wtf'),
);
}
public function defaultScope() {
return array(
'alias' => $this->tableName(),
);
}
// controller
public function actionIndex() {
$products = Product::model()->with(
array(
'brand'=>array(
'with'=>array(
'products'=>array(
'alias'=>'test'
)
)
)
)
)->findAll(array('limit'=>10));
var_dump($products[0]->brand->products[0]->title);
}
Предупрежден - значит вооружен.
devKP.ru
devKP.ru
Re: ошибка -Column is ambiguous
да , сталкиваешься с проблемой и начинаешь на автомате создавать префиксы, когда появляется много связей.