0

我想在 Yii 中使用 CActiveDataProvider 从我的表中获取数据。一切似乎都运行良好,但是当我想使用关系显示另一个相关表中的数据时,出现错误。'未定义的变量 $data '。

这是我的admin.php视图:

<h1>Manage Teams</h1>


<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'team-grid',
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        'id',
        'team_name',
        array(
            'name'=>'league_id',
            'type'=>'raw',
            'value'=>$data->league->league_name,
            ),
        'create_time',
        'update_time',
        array(
            'class'=>'CButtonColumn',
        ),
    ),
)); ?>

这是我在TeamController.php上的actionAdmin方法

public function actionAdmin()
    {
        $dataProvider=new CActiveDataProvider('Team', array(

            'criteria'=>array(
                'order'=>'create_time DESC',
            ),
            'pagination'=>array(
                'pageSize'=>20,
            ),
        ));

        $this->render('admin',array(
            'dataProvider'=>$dataProvider,
        ));
    }

显然,这种关系是一支球队属于一个联赛。

4

2 回答 2

3

您应该只将 $data->league->league_name引号括起来,然后它就会识别 $data 变量。它应该如下所示:

array(
        'name'=>'league_id',
        'type'=>'raw',
        'value'=>'$data->league->league_name',
        ),
于 2014-12-18T08:41:55.253 回答
1

你需要这样做:

你的专栏应该是

array(
        'name'=>'league_id',

        'value'=>array($this,'league_name'),
        ),

你的控制器应该有这样的功能:

public function league_name($data,$row)
{

    return $data->league->league_name;

}
于 2014-12-18T07:58:42.930 回答