Join 无法在CDbCriteria中进行内部联接

Join 无法在CDbCriteria中进行内部联接,join,yii,Join,Yii,这是mysqli查询 SELECT DISTINCT t.company_id,t.image,t.text,t.date, t.title AS c_title FROM news t INNER JOIN companies c ON c.company_id=t.company_id ORDER BY t.date DESC LIMIT 20" or die ("ERROR ". mysqli_error($link)); 我想用CDBC标准写作 $Criteria = new CDbC

这是mysqli查询

SELECT DISTINCT t.company_id,t.image,t.text,t.date, t.title AS c_title
FROM news t
INNER JOIN companies c ON c.company_id=t.company_id ORDER BY t.date DESC
LIMIT 20" or die ("ERROR ". mysqli_error($link));
我想用CDBC标准写作

$Criteria = new CDbCriteria();
$Criteria->join = 'INNER JOIN companies c ON t.company_id=c.company_id';
if ($place>0){
    $Criteria->condition = "t.company_id = :place";
    $Criteria->params = array(':place'=>$place);
}
$Criteria->order = "t.date DESC";
$Criteria->limit = 20;
$Criteria->select='t.company_id,t.image,t.text,t.date,c.title AS c_title';
$dataProvider = new CActiveDataProvider('News',
    array(
        'criteria'=>$Criteria,
        'pagination'=>false
    )
);

未定义错误属性“News.c_title”

未在新闻模型中定义属性
c_title
(新闻表中的字段将自动作为属性提供,但c_title是title的别名,而不是表中的字段)

将其放入您的新闻模型中:


public$c_title

是否在网格/列表视图中使用此选项?如果是,请添加。不,问题是我不能从公司获取c.title,它在新闻表格中查找。是的,c_title不是表格新闻的一个字段,它在表格公司中。通常在mysqli查询中,我编写了select c.title作为c_title,但这里它在新闻表中查找,而不是在公司中