我对$criteria->with
有疑问。我试图搜索关系,但它一直给我错误:"完整性约束违规:1052列' id' in 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'),
Vendedor Model(关系)
'peticion'=>array(self::HAS_MANY,'Peticion','peticion_id'),
为什么我仍然收到错误?
答案 0 :(得分:1)
请尝试
$criteria->with = array( 'vendedor' => array('alias'=>'v'));
$criteria->compare('v.nombre',$q,true, 'OR');