2014-12-18 4 views
0

Я хочу получить данные из своей таблицы, используя 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, 
     )); 
    } 

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

ответ

1

вам нужно сделать это следующим образом:

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

array(
     'name'=>'league_id', 

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

и вы контроллер обутые имеют функцию следующим образом:

public function league_name($data,$row) 
{ 

    return $data->league->league_name; 

} 
3

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

array(
     'name'=>'league_id', 
     'type'=>'raw', 
     'value'=>'$data->league->league_name', 
     ), 
Смежные вопросы