1

我正在尝试在一个 CGridView 中显示两个数据库表源 .. 2 个表是 reg.students 和 login.user .. 我的学生模型关系是,

public function relations()
{

     Yii::app()->getModule('user');
    return array(
        'royaltyOutstandings' => array(self::HAS_MANY, 'RoyaltyOutstanding', 'studentID'),
        'srkMedicalInfos' => array(self::HAS_MANY, 'SrkMedicalInfo', 'studentID'),
        'parents' => array(self::HAS_ONE, 'SrkParents', 'studentID'),
        'srkStudentWorksheets' => array(self::HAS_MANY, 'SrkStudentWorksheet', 'studentID'),
        'user' => array(self::BELONGS_TO, 'User', 'centre_id'),
    );
}

在用户模块中,

public function tableName()
{ return 'login.user'; }

在 cgridview 列数组中,

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'students-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
            array(
        'header' => 'No.',
        'value' => '$row+1',
    ),
     array('name' => 'user.centre_id',
    'value'=>'$data->user->centre_id',
    ), 
    '... // & so on

控制器动作是,

    public function actionAdmin()
{   
    $this->layout = 'column3';
    $form = new Reports ;
    $model=new Students('search');
    $model->unsetAttributes();  // clear any default values
    if(isset($_GET['Students']))
        $model->attributes=$_GET['Students'];

    $this->render('admin',array(
        'model'=>$model,
        'form'=>$form,
    ));
}
4

1 回答 1

1

如果我理解正确,您想在网格视图中显示一个或多个关系。如果这是您想要的,请查看本教程:http ://www.yiiframework.com/wiki/281/searching-and-sorting-by-related-model-in-cgridview/ 本教程不仅向您展示如何在您的网格视图中显示关系,但它也向您展示如何对数据进行排序和过滤。祝你好运!

于 2013-04-02T08:21:56.430 回答