Claves Foraneas

hola tengo una tabla con 7 claves foraneas, en la vista admin, me gustaria filtrar por cualquiera de ellas, pero lo unico que me permite poner es un entero, ya me documenté sobre el tema y vi que con con $criteria->with lo puedo hacer sin problema, ahora la cosa esta qeu en cuanto lo trato de hacer para mas de un campo me da error pq el with funciona como un left join y a la hora que quiera que lo haga para varios campos solo me ejecuta el join con la ultima tabla. Alguna sugerencia

$criteria->with =array(‘nombre del relation en el modelo’);

	$criteria->addSearchCondition('tabla.campo', strtolower($this->nombre del campo en el modelo));

es la mejor forma que tengo para explicartelo pq no diste nombre de tablas ni campos ni de la relacion

$criteria->compare(‘id’,$this->id);

$criteria->compare(‘no_exp’,$this->no_exp,true);

$criteria->compare(‘no_entrada’,$this->no_entrada,true);

$criteria->with =array(‘entidadgsFk’);

$criteria->addSearchCondition(‘entidadgsFk.entgs_nombre’, $this->entidadgs_fk);

$criteria->compare('viaFK);

$criteria->addSearchCondition(‘viaFK.via’, $this->via_fk);

este es mi codigo, aqui esta el contenido de la funcion search(), entidadFk es el nombre de la relacion con la tabla entidad(BELONG TO), necesito lo mismo para viaFk, cdo filtro por via no hay problema, pero si quiero filtrar por entidad me dice que no encuentra entgs_nombre en la tabla via, o sea se queda el left join enganchado con el segundo.

espero que se entienda mejor

with es un array, pon en el todas las relaciones:




$criteria->with =array('relacion1','relacion2',....,'relacionn');



millon de gracias rahif , me funciono tremendamente