Tablas recursivas y grid

[font="Book Antiqua"]Hola a todos quiero mostrar los datos de una tabla re cursiva en un grid pero tengo problemas al hacerlo


+-----------------+

|      lugar      |

+-----------------+

| id_lugar        |

| id_previo_lugar |

| nombre_lugar    |

+-----------------+ 




+----------+------------------+------------------+

| id_lugar | id_previus_lugar | nombre_lugar     |

+----------+------------------+------------------+

|     1    |        NULL      | España           |

+----------+------------------+------------------+

|     2    |         1        | Madrid           |

+----------+------------------+------------------+

|     3    |         1        | Valencia         |

+----------+------------------+------------------+

La idea es que esta se vea de la siguiente manera


+----------+------------------+------------------+

| id_lugar | id_previus_lugar | nombre_lugar     |

+----------+------------------+------------------+

|     1    |        NULL      | España           |

+----------+------------------+------------------+

|     2    |      España      | Madrid           |

+----------+------------------+------------------+

|     3    |      España      | Valencia         |

+----------+------------------+------------------+

Vista


$this->widget('zii.widgets.grid.CGridView', array(

   'id' => 'lugar-grid','dataProvider' => $dataProvider,'pager' => array('header' => '',

   'firstPageLabel' => '<<','prevPageLabel' => '<','nextPageLabel' => '>','lastPageLabel' => '>>',),

   'columns' => array(

        array('name' => 'id','type'=>'raw','value'=>'$data->lugar1->id_lugar',),

        array('name' => 'lugar proviene','type'=>'raw','value'=>'$data->lugar1->nombre_lugar',),

        array('name' => 'lugar','type'=>'raw','value'=>'$data->nombre_lugar',),

    ),

  ),

Modelo


public function relations()

{

  return array(

     'lugar1'=>array(self::BELONGS_TO, 'Lugar', 'id_lugar')

  );

}

este es el código que tengo pero al utilizar eso solo se repiten los nombre del lugar y del id_previus_lugar[/font]

Hola Carlos,

El model está bien, creo que el problema está en que no definió explicitamente la relación entre id_previous_lugar y la tabla lugar en el motor de base de datos.

Saludos y éxitos.

Saludos robregonm,

1ero necestias mostrar el esquema de la tabla con la que estas haciendo la relacion, en tu caso seria algo como pais.




+-----------------+

|      pais       |

+-----------------+

| id              |

| nombre          |

+-----------------+ 



el modelo te quedaria de la siguiente manera:




public function relations()

{

  return array(

     'lugar1'=>array(self::BELONGS_TO, 'pais', 'id')

  );

}



y la grilla te quedaria algo como…




$this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'lugar-grid',

	'dataProvider'=>$model->search(),

	'filter'=>$model,

	'columns'=>array(

		'id_lugar',

		'lugar1.nombre',

		'nombre_lugar',

		array(

			'class'=>'CButtonColumn',

		),

	),

));