Problemas Busqueda en el CGridView

Hola

es mi segundo post en yii

Hasta ahora todo había funcionado de maravilla con yii, pero tengo 2 problemas con las busqueda en el CGridView

La primera:

Tengo en el view de un modelos llamado requerimientos un grid que me permite crear pasos de ese requerimiento.

simplemente convoco el gridview y listo, tengo todos los pasos relacionados con ese requerimiento




$model2= new EXTREQUERIMIENTOPASOS;


$dataProvider= $model2->buscarRequerimiento($model->ID);


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


    'dataProvider'=>$dataProvider,

	'filter'=>$model2,

	 'template'=>"{items}\n {pager}",

	'htmlOptions'=>array('style'=>'word-wrap:break-word; width:850px;'),

));



El problema es que no funciona la barra del search de arriba de la tabla. En definitiva, nunca he podido lograr que funcione un CGridView en otro view que no sea el propio admin del modelo.

Segundo Problema:

Tengo una tabla en el admin de mi modelo usuarios, sin embargo quiero sacar los nombres de la compañia que estan relacionadas con el usuario. El problema es que de la misma forma que en el problema anterior, el search no funciona.

EN este caso he tratado de hacer dos cosas, primero obtener el valor de la columna con un metodo, por ejemplo, en el cgridview donde declaro las columnas




				array(

				'name'=>'CCOMPANIA',

			    'value'=>array($model, 'getCompania'),

				'htmlOptions'=>array('style'=>'max-width:20px'),

		),



Donde getCompania me devuelve el nombre de la compañia del ID que le paso. Si bien me devuelve el nombre, la busqueda no funciona con caracteres y para buscar tengo que colocar es el ID, no el caracter como tal.

Lo otro que se me ocurrio fue hacer la relacion, la hice perfectamente y lo pase al grid


     array( 

			 'name'=>'busqueda_compañia',//variable creada solo para esto

			'value'=> '$data->ccompania->xdescripcion_l',

			 ),



Sin embargo cuando un valor esta en null, no funciona (saben como colocar una condición en el propio array). Pero aparte de eso, si no consigue ningún null y se muestra, sigue sin funcionar la búsqueda.

Espero que me puedan ayudar con este problema, llevo toda aun semana con el sin poder conseguirle la solución. Gracias de antemano

Intenta en CDbcritera del CActivedataprovider antes de la funcion compare llamar la relacion compañia y agrega el una funcion compare para el nombre de la compañia

En la condicion del array depronto te sirve esto (value=>"$data->atrr == null ? op1 : op2")

para hacer funcionar un gridview o colocas esto

$model2= new EXTREQUERIMIENTOPASOS; desde el controlador para que al momento de la busqueda se filtre los por los parametros o en gridview cololas (ajaxurl=>url donde buscar)