filtro cgridview

hola, tengo una tabla "contrato" relacionada con la tabla "ep" y esta a su vez con "modalidad". Estoy mostrando los datos del contrato en un cgridview pero no puedo filtrar por la modalidad ya que no existe ese campo en la tabla contrato ¿qué puedo hacer?

Esta es la relación

contrato -> ep -> modalidad

Esto es lo que tengo




$criteria       = new CDbCriteria;


$criteria->with = array(

   'ep' => array(),

);



Intento hacer esto pero no sirve




$criteria->compare('ep.modalidad.id', $this->modalidad, false);



Hi,

You could try:


$criteria       = new CDbCriteria;


$criteria->with = array(

   'ep.modalidad',

);


$criteria->compare('modalidad.id', $this->modalidad, false);



I think this wiki could help you too.

don’t works. No errors but no filter

ya lo logré, incluí los siguiente:




if (isset($_GET['Contrato']['modalidad'])) {

   $modalidad = Modalidadcontratacion::model()->findByPk($_GET['Contrato']['modalidad']);

   $this->modalidad = $modalidad->id;

}


$criteria->compare('ep.modalidadcontratacion_id', $this->modalidad, false);



Can you share your code?