Я хочу получить данные из моей таблицы, используя 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,
));
}
Отношение, очевидно, команда принадлежит к лиге.
вам нужно сделать это так:
ваша колонка должна быть
array(
'name'=>'league_id',
'value'=>array($this,'league_name'),
),
и у вашего контроллера есть такая функция:
public function league_name($data,$row)
{
return $data->league->league_name;
}
Вы должны просто поставить $data->league->league_name
в кавычках, а затем он распознает переменную $ data. Это должно выглядеть так:
array(
'name'=>'league_id',
'type'=>'raw',
'value'=>'$data->league->league_name',
),