Критерий-›с ошибкой, Id неоднозначный

У меня проблема с $criteria->with. Я пытаюсь выполнить поиск в отношении, но оно продолжает выдавать ошибку: "Нарушение ограничения целостности: 1052 Идентификатор столбца в предложении where неоднозначен". Я искал информацию по этому вопросу и обнаружил, что мне нужен псевдоним.

Итак, теперь у меня есть это:

$q=$_POST['q'];
$url=Yii::app()->request->url;
$model=new Peticion('search');
$model->unsetAttributes();


$criteria->compare('t.id',$q,true, 'AND');
//$criteria->compare('decreto.ndecreto',$q,true, 'OR');
//$criteria->compare('decreto.gaceta',$q,true, 'OR');
$criteria->compare('t.tipos_id',$q,true, 'OR');
$criteria->compare('t.vendedor_id',$q,true, 'OR');
$criteria->compare('t.clientes_id',$q,true, 'OR');
$criteria->compare('t.fechacot',$q,true, 'OR');
$criteria->compare('t.metodologia',$q,true, 'OR');
$criteria->compare('t.fechaven',$q,true, 'OR');
$criteria->compare('t.departamento_id',$q,true, 'OR');
$criteria->compare('t.muestras_id',$q,true, 'OR');
$criteria->with = array( 'vendedor');
$criteria->compare('Vendedor.nombre',$q,true, 'OR');

$q — это строка, которую я собираюсь использовать для сравнения, поэтому я подумал, что это проблема отношения. Вот мои отношения:

Модель петиции (таблица, в которой я пытаюсь выполнить поиск)

'vendedor'=>array(self::BELONGS_TO,'Vendedor','vendedor_id'),

Модель поставщика (отношение)

'peticion'=>array(self::HAS_MANY,'Peticion','peticion_id'),

Почему я все еще получаю сообщение об ошибке?


person Fradniev    schedule 02.06.2014    source источник
comment
как насчет изменения «Vendedor.nombre» на «vendor.nombre»   -  person Developerium    schedule 02.06.2014
comment
где вы используете этот критерий?   -  person Developerium    schedule 02.06.2014
comment
@tinybyte я так и сделал, но ничего не изменилось   -  person Fradniev    schedule 02.06.2014
comment
Я думаю, что ошибка откуда-то еще, как вы используете этот критерий?   -  person Developerium    schedule 02.06.2014
comment
@tinybyte Я использую критерии для окна поиска для всей страницы, я использую его для поиска в петиции, я использую эти критерии в контроллере петиции, в actionIndex   -  person Fradniev    schedule 05.06.2014
comment
Я хотел показать с кодом   -  person Developerium    schedule 05.06.2014


Ответы (1)


Пожалуйста попробуйте

$criteria->with = array( 'vendedor' => array('alias'=>'v'));
$criteria->compare('v.nombre',$q,true, 'OR');
person Sajin    schedule 02.06.2014
comment
@xlembouras я просто попробовал это, но все равно получил ошибку: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous. The SQL statement executed was: SELECT COUNT(DISTINCT 't'.'id') FROM 'peticion' 't' LEFT OUTER JOIN 'vendedor' 'v' ON ('t'.'vendedor_id'='v'.'id') - person Fradniev; 02.06.2014