在Yii中如何显示两个表的数据

时间:2014-05-18 13:16:39

标签: yii

我有两张桌子

User
---------
id
username
password
level
company_id


Company
-----------
id
name
website

现在我想显示公司名称为WHERE company_id = 1

的用户列表(Gridview)

1 个答案:

答案 0 :(得分:1)

您必须在模型中使用关系。通过gii创建模型后,转到User模型并更改relations方法,如下所示:

public function relations() {
    return array(
        'company'=>array(self::HAS_ONE,'Company','company_id')
    );
}

然后,你可以这样做:

$user=User::model()->findByPk(10); //for example user with id=10
echo $user->company->name; //it returns the relative company name

备注:

  • 我假设每个用户都有一家公司。这就是我写self::HAS_ONE
  • 的原因
  • 您可以在CGridView执行:$data->company->name
  • company只是关系的名称,但Company是相关模型
  • Yii有一份强大而全面的文件。所以,最好看看它的官方文件。 Relational Query Options