Mira que ya solucioné el problema pero para mi este problema nunca debió suceder, es decir, me da la impresión de que es un error de Yii, así que lo voy a comentar aquí por si estoy equivocado alguien me explique…
Yo hago la asignación de los campos en el controlador con:
$model->attributes=$_POST['UsersLoginForm'];
Y en el modelo tengo las siguientes reglas de validación:
return array(
// username and password are required
array('username, password', 'required'),
// verifyCode needs to be entered correctly
array('verifyCode', 'captcha'),
// password needs to be authenticated
array('password', 'authenticate'),
);
…Pero siempre me decía que el ‘verifyCode’ estaba vació, entonces yo imprimí en pantalla el atributo ‘$model->attributes’ para ver que pasaba y efectivamente el ‘verifyCode’ estaba vació… entonces investigando encontré que en ‘$model->attributes’ solo se almacenan los atributos seguros (safe attributes) y que para un atributo ser seguro debe aparecer en las reglas de validación… pero entonces ahí venia mi duda porque segun lo que yo veia yo el atributo ‘verifyCode’ ya aparecía en las reglas de validación cuando yo coloqué lo siguiente en las reglas:
...
array('verifyCode', 'captcha'),
...
Entonces… ¿Por que me sale que no es un atributo seguro?
Luego se me ocurrió pensar que tal vez debía aparecer otro tipo de validación en las reglas para poder que lo considerara seguro y entonces agregué la siguiente regla:
array('verifyCode', 'length', 'min'=>6, 'max'=>7),
Y cuando probé de nuevo ya funcionaba mi formulario.
Pero para mi… con solo la primera regla debió ser considerado como seguro… ¿estoy loco?
Un saludo!