Php 如何在yii中连接两个具有关系的表?

Php 如何在yii中连接两个具有关系的表?,php,yii,crud,cgridview,Php,Yii,Crud,Cgridview,我有两张表,公司和用户。在用户表中有一个名为company_id的字段,它将用户与公司关联起来。但并非所有用户都与该公司相关。将有没有公司id的用户。现在我需要使用关系在网格视图中列出用户。我使用yii中的关系将公司与用户关联 public function relations() { return array('company' => array(self::BELONGS_TO, 'Company', 'company_id')); } 但当我试图显示每个用户的公司名称时,它

我有两张表,公司和用户。在用户表中有一个名为company_id的字段,它将用户与公司关联起来。但并非所有用户都与该公司相关。将有没有公司id的用户。现在我需要使用关系在网格视图中列出用户。我使用yii中的关系将公司与用户关联

public function relations() {
    return array('company' => array(self::BELONGS_TO, 'Company', 'company_id'));
}
但当我试图显示每个用户的公司名称时,它显示了错误。我认为问题在于与公司无关的用户。我搜索了答案,在给出关系的同时提出了左连接操作

public function relations() {
    return array('company' => array(self::BELONGS_TO, 'Company', 'company_id',
            'joinType' => 'LEFT JOIN',
            'on' => "(company.id=company_id)"));
}
但这也给了我错误

CDbCommand无法执行SQL语句:SQLSTATE[42S22]:未找到列:1054“where子句”中的未知列“company_id”。执行的SQL语句是:选择
company
id
AS
t1\u c0
company
name
AS
t1\u c1
company
AS
t1\u c2
company
company
描述AS
t1\u c3
公司
地址作为
t1\u c4
公司
状态作为
t1\u c5
来自
公司
公司其中((company.id=company\u id))和(
公司
id
=:ypl0)

请帮我解决这个问题。我是yii的初学者


提前感谢。

请通过以下链接了解Yii关系的工作原理:

删除
'on'=>“(company.id=company\u id)”