Yii Alias

Olá pessoal,

Estou começando a usar o YII e estou com o seguinte problema.

Em uma model ‘xyz’ tenho o seguinte relation:




	public function relations()

	{

		return array(

			're_xyz' => array(self::BELONGS_TO, 'xyz', 'cod_xyz'),

			're_abc' => array(self::HAS_MANY, 'abc', 'cod_abc'),

		);

	}



Na controller desta mesma área (xyzController) tenho o seguinte trecho que me retorna o objeto $dataProvider (CActiveDataProvider):




$dataProvider=new CActiveDataProvider('ca_convenio', array(

	'criteria'=>array(

	'with'=>'abc',

	/*'alias'=>'??,*/ // seria aqui ?

	'select'=> array(

			'cod_xyl',

			'data_inicio_xyz',

			),

				

		    ),

			'pagination'=>array(

				'pageSize'=>self::PAGE_SIZE,

			),

		));



Na view ultilizo deste objeto para uma listagem, utilizando o componente (CGridView):




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

		'dataProvider'=>$dataProvider,

		'columns'=> array(

			array(

			 'name'=>'Xyz', 

			 'value'=>'$data->name_xyz'

			),

			array(

			 'name'=>'codigo xyz',

                         'value'=>'$data->cod_xyz',

		        ),

		),

	));



O retorno está ok até aqui, pois só faço uso de colunas da tabela principal da área (xyz).

Porem quando tento fazer uso de dados da tabela relacionada (abc) me retorna erro por falta de alias.

No que se refere a alias na documentação, são poucas as informações, faltam exemplos ricos parametros, normalmente são simples demais os exemplos, gostaria de saber se alguem tem um exemplo relativamente mais complexo sobre o uso do alias, onde e como fazer uso dele.

Viva!

Não sou muito bom nisto, mas vou tentar ajudar.

Não percebi muito bem o que estás a tentar fazer, mas parece que usas 3 models ca_convenio, abc e xyz.

Se estás a utilizar ca_convenio relacionada com abc e xyz, então tens de fazer no DataProvider




$dataProvider=new CActiveDataProvider('ca_convenio', array(

        'criteria'=>array(

        'with'=>array('re_abc','re_xyz'),//aqui fazes a ligação aos 2 outros models

        'select'=> array(

                        'cod_xyl',

                        'data_inicio_xyz',

                        ),

                                

                    ),

                        'pagination'=>array(

                                'pageSize'=>self::PAGE_SIZE,

                        ),

                ));




depois no CGridView fazes:




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

                'dataProvider'=>$dataProvider,

                'columns'=> array(

                       'campo_do_ca_convenio',//se for directo de ca_convenio

're_xyz.campo_de_xyz',//se for do model xyz

're_abc.campo_de_abc,//se for do model abc


                ),

        ));




Mas acho que deves estar a pedir valores errados.

Desculpa se não ajudei, mas a intenção foi ajudar.

Bem Legal Tuga, muito obrigado

Me ajudou a visualizar meu erro, valeu.