如何在yii的dataprovider中显示记录?

时间:2012-04-16 09:03:59

标签: datagridview yii dataprovider

我想在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')),

    }

1 个答案:

答案 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

访问它们