Problema al validar campos de un filtro gridview

Hola!

Tengo una gran duda, a ver si alguien puede iluminarme.

Tengo un cgridview con una columna que me muestra los ID de los usuarios. Ese campo está determinado como integer:




public function rules(){                

    return array(

        array('id_usuario','numerical','integerOnly'=>true),

        array('id_usuario', 'safe','on'=>'search'),

    );

}



El problema está cuando en el filtro escribo, por ejemplo, una "a".

En el controlador hago la asignación al atributo del modelo:


$model->attributes=$_POST['Usuarios'];

A continuación, cargo la vista que contiene el CGridview. Este Cgridview se nutre del dataprovider retornado en


$model->search();

Como


$model->id_usuario

contiene un carácteres no numerico, al construir la consulta y ejecutarla, sale error.

Puedo usar


$model->validation()

, el problema es dónde. Lo que se debe evitar es la ejecución de model->search si no está validado.

Alguna idea?

Gracias de antemano

Buenas.

No sé por qué te dá error si pones un caracter en lugar de un dígito. :blink:

Las rules sólo se aplican cuándo haces un save() en tu modelo, no en el search. Por tanto no tendría sentido hacer un $model->validation() en un search.

Creo que estás liado.

En un CGridView, si escribes cualquier cosa en las cajas de filtro de columnas, o te muestra resultados o no te los muestra. Pero no dá error (a no ser que hayas modificado tú el funcionamiento del search).

Puedes postear el error que te dá?

Un saludo.