Cgridview Con Datos De 2 Modelos Sin Relaciones

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

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

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

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:" "',

),