【发布时间】:2014-09-24 10:03:01
【问题描述】:
我有两张表 company 和 users。在用户表中有一个名为 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 语句为:SELECT
company.idASt1_c0,company.nameASt1_c1,company.telephoneASt1_c2, @98765433@2.@98765433@2. ASt1_c3,company.addressASt1_c4,company.statusASt1_c5FROMcompanycompanyWHERE (((company.id=company_id)3@4) AND (@company.id=company_id)3@3 .id=:ypl0)
请帮助我解决这个问题。我是yii的初学者。
提前致谢。
【问题讨论】:
-
删除
'on' => "(company.id=company_id)"