Reglas de Validación

Hola,

Quisiera saber como hacer q una regla de validación no se ejecute para un escenario específico, ya que se que para que sea ejecutado es con "on".

Muchas gracias de antemano.

Bueno que no se ejecute para un escenario específico puede ser por ejemplo aquellas que son ‘obligatorias’ - required.

También sabrás que puedes crear tus propias funciones de validación y luego están aquellas que se ejecutan en posibles escenarios ‘on’.

Un compañero ha escrito una gran tutorial al respecto, espero que te sirva de ayuda: http://www.yiiframework.com/wiki/56/reference-model-rules-validation

Saludos

Entiendo, pero por ejemplo para que esta tipo de regla ‘required’ no se cumpla para un escenario específico, cómo lo puedo hacer??.

Gracias,

Hola Erika

no es posible hacer eso de una forma elegante y prolija

lo que puedes hacer es poner todos los escenarios menos el que no queres

por ejemplo

si los campos 1 y 2 son requeridos para todos los escenarios, menos para el escenario2

y supongamos que tienes 4 escenarios

podrías poner





public function rules()

{

    return array(

        

array('campo1, campo2', 'required', 'on'=>'scenario1'),


array('campo1, campo2', 'required', 'on'=>'scenario3'),


array('campo1, campo2', 'required', 'on'=>'scenario4'),

 

        

    );

}



espero sea lo que buscabas

No entiendo muy bien lo que quieres decir que no se hagan en ciertos escenarios… de hecho, cuando pones ‘on’ es que esa regla solo se ejecuta en ese tipo de validacion nada mas… en el resto no.