【问题标题】:how to join two table with relation in yii?如何在yii中加入两个有关系的表?
【发布时间】: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.id AS t1_c0, company.name AS t1_c1, company.telephone AS t1_c2, @98765433@2.@98765433@2. AS t1_c3, company.address AS t1_c4, company.status AS t1_c5 FROM company company WHERE (((company.id=company_id)3@4) AND (@company.id=company_id)3@3 .id=:ypl0)

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

提前致谢。

【问题讨论】:

  • 删除'on' => "(company.id=company_id)"

标签: php yii crud cgridview


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多