Yii Framework Forum: Yii Alias - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Yii Alias Active Record Relacional Rate Topic: -----

#1 User is offline   webd 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 09-February 10

Posted 19 February 2010 - 06:12 AM

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.
0

#2 User is offline   tuga 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 68
  • Joined: 02-January 10

Posted 19 February 2010 - 09:40 AM

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.
1

#3 User is offline   webd 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 09-February 10

Posted 26 February 2010 - 09:55 PM

Bem Legal Tuga, muito obrigado
Me ajudou a visualizar meu erro, valeu.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users