首先确保您的模型和关系定义正确。检查模型以确保存在关系。例如,您的员工模型中应该有这样的条目;
function relations() {
return array(
'reg_no'=>array( self::BELONGS_TO, 'Student', 'reg_no' ),
);
}
在 CGridView 中使用 CActiveDataProvider 而不是数组作为数据源。
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$model->searchEmplyees(),
.......
.......
向您的模型添加另一个搜索条件,将数据作为 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',
),
));
}
我刚刚输入了这段代码供您参考,以便您了解 Yii 是如何为您处理所有这些的。这是另一个很好的例子,同样来自 Yii 框架站点。