【问题标题】:Criteria->with error, Id ambiguous标准-> 有错误,ID 不明确
【发布时间】:2014-06-02 05:17:27
【问题描述】:

$criteria->with 有问题。我正在尝试在关系中搜索,但它一直给我错误:“完整性约束违规:1052 列 'id' 在 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 是我要用来比较的字符串,所以我认为这是一个关系问题。这是我的关系:

Peticion 模型(我试图搜索的表)

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

供应商模型(关系)

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

为什么我仍然收到错误消息?

【问题讨论】:

  • 如何将 'Vendor.nombre' 更改为 'vendor.nombre'
  • 你在哪里使用这个标准?
  • @tinybyte 我做到了,但没有任何改变
  • 我认为错误来自其他地方,您如何使用此标准?
  • @tinybyte 我正在使用所有页面的搜索框标准,我正在使用它在“请愿书”中搜索,我在请愿控制器中使用此标准,在 actionIndex

标签: yii model criteria relation ambiguous


【解决方案1】:

请尝试

$criteria->with = array( 'vendedor' => array('alias'=>'v'));
$criteria->compare('v.nombre',$q,true, 'OR');

【讨论】:

  • @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')
猜你喜欢
  • 2018-01-26
  • 1970-01-01
  • 2018-04-20
  • 2020-09-19
  • 2013-08-29
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
相关资源
最近更新 更多