Неопределенная переменная $data в CActiveDataProvider - Yii Framework

Я хочу получить данные из своей таблицы, используя CActiveDataProvider в Yii. Кажется, все работает хорошо, но когда я хочу отобразить данные из другой связанной таблицы, используя отношения, я получаю сообщение об ошибке. 'Неопределенная переменная $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',
        ),
    ),
)); ?>

и вот мой метод actionAdmin в TeamController.php

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

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

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

Отношение, очевидно, состоит в том, что команда принадлежит к лиге.


person Richie    schedule 18.12.2014    source источник


Ответы (2)


вам нужно сделать это так:

ваша колонка должна быть

array(
        'name'=>'league_id',

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

а у тебя контроллер обут, есть такая функция:

public function league_name($data,$row)
{

    return $data->league->league_name;

}
person Moneer Kamal    schedule 18.12.2014

Вы должны просто поместить $data->league->league_name в кавычки, и тогда он распознает переменную $data. Это должно выглядеть так:

array(
        'name'=>'league_id',
        'type'=>'raw',
        'value'=>'$data->league->league_name',
        ),
person robertgliguroski    schedule 18.12.2014