我想在dataprovider中使用此查询
select user.username ,company_user.* from user left join company_user on company_user.user_id=user.id where company_user.company_id=".$id
如何在CActiveDataProvider中编写
请帮助我 提前感谢...
我有3张桌子
的 company_user - >编号,COMPANY_ID,USER_ID,名字,姓氏
的公司 - >编号,name_of_company
的用户 - &GT ID,用户名,密码
我想要来自用户的 company_user +用户名的所有记录
提前致谢...:)
我想要CGridView中的列表
在我的用户模型中,我写过这种关系
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'company_user' =>array(self::HAS_ONE,'CompanyUser','user_id','select' =>array('first_name','status'),
'with'=>array('company'=>array(self::BELONGS_TO, 'Company', 'company_id','joinType' => 'INNER JOIN')),
),
'company_user_rel_only' =>array(self::HAS_ONE,'CompanyUser','user_id','select' =>array('first_name', 'last_name')),
}
答案 0 :(得分:2)
使用Yii,你应该使用模型方法,这样的东西应该起作用:
$criteria = new CDbCriteria;
$criteria->with = 'user';
$criteria->compare('company_id', $id); //if error due to similar column name change it to t.company_id
$dataProvider = new CActiveDataProvider('CompanyUser', array(
'criteria' => $criteria,
));
我将假设CompanyUser和User之间的关系名称是user,如果没有,则将with属性更改为正确的名称。此外,这将提供CompanyUser类型的对象,如果您想访问用户属性,请使用 - > user-> username
访问它们