Yii Framework Forum: Cgridview Con Datos De 2 Modelos Sin Relaciones - Yii Framework Forum

Jump to content

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

Cgridview Con Datos De 2 Modelos Sin Relaciones Rate Topic: -----

#1 User is offline   alexd2 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 27
  • Joined: 12-September 12

Posted 03 October 2012 - 11:17 AM

Hola a todos muy buenas, poco a poco voy avanzando con yii

No se como aplicar esto:

Tengo un CGridView el cual me muestra los datos de 3 tablas relacionadas
Lo hago de esta forma (modifico la que genera por defecto el crud:

model tabla1
public function search()
{
...
...
...

$criteria=new CDbCriteria;

$criteria->with = array('tabla2','tabla3');
$criteria->together = true;
$criteria->addInCondition('t.idtb1',1,3,5,6,7);
$criteria->compare('idtb2',$this->idtb2);
$criteria->compare('date',$this->date,true);
$criteria->compare('tabla2.codigo',$this->codigo,true);
$criteria->compare('tabla3.description',$this->descrip,true);

return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,  
));
}
      


Y la vista
...
...
...
<?php $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'redeemed-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(        
	array(
            'name'=>'codigo',
            'value'=>'$data->tabla2->codigo',         
        ),
	array(
            'name'=>'description',
            'value'=>'$data->tabla3->descrip',         
        ),


Esto funciona perfecto me muestra todo.
El problema es que quiero usar 2 tablas más que NO están relacionadas, que son tabla4 y tabla5, como se puede hacer?

Saludos y gracias
0

#2 User is offline   alexd2 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 27
  • Joined: 12-September 12

Posted 04 October 2012 - 03:03 AM

Adjunto imagen del esquema de la bbdd a ver si se entiende mejor
Posted Image
0

#3 User is offline   alexd2 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 27
  • Joined: 12-September 12

Posted 04 October 2012 - 03:22 AM

Y el cgridview que actualmente me devuelve los datos solo haría falta agregar lo de tabla4 (nombre)

A ver si me dan una mano, gracias
Posted Image
0

#4 User is offline   safitanet 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 45
  • Joined: 04-August 11

Posted 29 October 2012 - 04:23 AM

Hola, si tienes hechas las relaciones en los models, puedes añadirlas en el cirteria del search

Siguiendo este ejemplo:

Post::model()->with('author','author.profile')->findAll();



Tú lo podrías hacer así:


$criteria->with = array('tabla2','tabla3','tabla2.tabla5','tabla2.tabla5.tabla4');

// para comparar, te habrás creado la propiedad en el model
$criteria->compare('tabla4.description', $this->tb4description, true);

// en el cgridview
array(
	'name'=>'tb4description',
	'value'=>'(isset($data->tabla2->tabla5))?$data->tabla2->tabla5->tabla4->description:" "',
),


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