Php 如何在CActiveDataProivder yii中添加带模型的别名

Php 如何在CActiveDataProivder yii中添加带模型的别名,php,yii,Php,Yii,我有一个带有“type”属性的用户模型。以及带有“标题”的产品型号。这是我的密码 $criteria = new CDbCriteria; $criteria->addCondition('type = "ABC"'); $criteria->mergeWith ( array ( 'with' => 'products' ) ); $criteria->mergeWith ( array ( '

我有一个带有“type”属性的用户模型。以及带有“标题”的产品型号。这是我的密码

$criteria = new  CDbCriteria;
$criteria->addCondition('type = "ABC"');    
$criteria->mergeWith ( array (
            'with' => 'products'
        ) );

$criteria->mergeWith ( array (
            'condition' => "`products`.title LIKE '". $model->title ."'",
            'together' => true
        ) );

$dataProvider = new CActiveDataProvider('User', array(
        'criteria' => $criteria,
    ));
它给出了以下错误:-

CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: 
Integrity constraint violation: 1052 Column 'type' in where clause is ambiguous
我的问题是,如何使用上述方法为用户模型添加别名,以便User.type=“ABC”

试着这样做:

$criteria = new  CDbCriteria;
$criteria->addCondition('table_name.type = "ABC"');    
$criteria->mergeWith ( array (
            'with' => 'products'
        ) );

$criteria->mergeWith ( array (
            'condition' => "`products`.title LIKE '". $model->title ."'",
            'together' => true
        ) );

$dataProvider = new CActiveDataProvider('User', array(
        'criteria' => $criteria,
    ));

如果不起作用,请用整个查询粘贴完整错误

谢谢您的回复。我试过这个,但不起作用。未找到列:1054未知列“User.type”在“where子句”中是否确定表名为:User?也许在mysql数据库中,表的名称是user???别忘了mysql中的casesensetive。是的,表名是“User”,感谢您的回复,是的,它正在使用t.type,但是如果我们明确地想为User表添加别名,该怎么办呢?对不起,兄弟,无法帮到您。Yii需要这些别名来创建嵌套对象,所以我从未尝试挑战它的酷功能。
$criteria = new  CDbCriteria;
$criteria->compare('t.type' => "ABC");    
$criteria->with= array('products'=>array('on'=>"title LIKE '$model->title'"));

$criteria->together=true;

$dataProvider = new CActiveDataProvider('User', array(
        'criteria' => $criteria,
    ));