Неопределенная переменная $ 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,
));
}

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

0

Решение

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

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

array(
'name'=>'league_id',

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

и у вашего контроллера есть такая функция:

public function league_name($data,$row)
{

return $data->league->league_name;

}
1

Другие решения

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

array(
'name'=>'league_id',
'type'=>'raw',
'value'=>'$data->league->league_name',
),
3