CGridView显示来自两个表的数据?

Sat*_*r S 2 yii

我想设置一个CGridView.我想在一个视图中显示来自2个不同表的数据.数据来自名为student的表,另一个名为employee.

员工由学生审核(reg_no)

学生表

reg_no(主键)s_name dept f_name

员工表

e_no(主键)e_name设计工资reg_no(外键)

我想在一个网格视图中显示学生的(reg_no,s_name,f_name)和员工表中的(设计,工资),任何人都可以给出一个想法或任何教程,

Orl*_*mee 8

首先确保正确定义了模型和关系.检查模型以确保存在关系.例如,您的员工模型中应该有这样的条目;

function relations() {
    return array(
        'reg_no'=>array( self::BELONGS_TO, 'Student', 'reg_no' ),
    );
}
Run Code Online (Sandbox Code Playgroud)

使用CGridView中的CActiveDataProvider而不是数组作为数据源.

$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$model->searchEmplyees(),
 .......
 .......
Run Code Online (Sandbox Code Playgroud)

在模型中添加另一个搜索cirteria,将数据作为CActiveDataProvider返回.

public function seachEmployees()
{
    $criteria=new CDbCriteria;
    $criteria->alias = 'i';
    $criteria->compare('id',$this->id);
    .......
            ....... 
    $criteria->join= 'JOIN 'your table name' d ON (i.id=d.id)';

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
        'sort'=>array(
            'defaultOrder'=>'order_in_sna ASC',
        ),
    ));
}
Run Code Online (Sandbox Code Playgroud)

我刚刚输入此代码供您参考,以便您了解Yii如何为您处理所有这些问题.这是另一个很好的例子,同样来自Yii框架网站.