Yii Framework Forum: [RESUELTO] Como crear un validator - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[RESUELTO] Como crear un validator Rate Topic: -----

#1 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 29 September 2009 - 10:07 AM

Hola Comunidad

hice una funcion que me valida una fecha ingresada

    public function rules()
    {
        return array(
            array('tipo_novedad','length','max'=>45),
            array('expediente','length','max'=>45),
            array('ciudad_institucion','length','max'=>100),
            array('obs','length','max'=>500),
            array('tipo_novedad, fecha', 'required'),
                        array('fecha_fin,fecha_ini,fecha','fechaValida'),
        );
    }




public function fechaValida($attribute,$params) {
       if (!empty($this->$attribute) and $this->$attribute!==null) {
       //echo $attribute.Varios::is_date($this->$attribute);
       if (!Varios::is_date($this->$attribute))
           $this->addError($attribute,$this->getAttributeLabel($attribute).' es una fecha incorrecta');

       else
           $this->$attribute=Varios::agregarBarras($this->$attribute);
       }
  }



pero tengo que ponerla en cada modelo


lo que quisiera hacer es usar un alias (como "required" de "CRequiredValidator" o "compare" de CCompareValidator)


lo que hice fue la clase, pero no se como definir el alias

<?php
class CFechaValidaValidator {

    protected function validateAttribute($object,$attribute)
    {

       if(!$this->isEmpty($object->$attribute,true))

       //echo $attribute.Varios::is_date($this->$attribute);
       if (!Varios::is_date($object->$attribute)) {
           //$this->addError($attribute,$this->getAttributeLabel($attribute).' es una fecha incorrecta');
           $message=$this->message!==null?$this->message:Yii::t('yii','{attribute} es una fecha incorrecta');
           $this->addError($object,$attribute,$message);
       }
       else
           $object->$attribute=Varios::agregarBarras($object->$attribute);
    }

}
?>

KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

#2 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 497
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 29 September 2009 - 10:14 AM

Tenes que extender la clase de CValidator

Podes ver más acá: http://www.yiiframew.../api/CValidator
0

#3 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 29 September 2009 - 10:28 AM

View Postsebas, on 29 September 2009 - 10:14 AM, said:

Tenes que extender la clase de CValidator

Podes ver más acá: http://www.yiiframew.../api/CValidator


ok
en rules()
array('fecha_fin,fecha_ini,fecha','CFechaValidaValidator'),


la clase
<?php
class CFechaValidaValidator extends CValidator {


    protected function validateAttribute($object,$attribute)
    {

       if(!$this->isEmpty($object->$attribute,true))

       //echo $attribute.Varios::is_date($this->$attribute);
       if (!Varios::is_date($object->$attribute)) {
           //$this->addError($attribute,$this->getAttributeLabel($attribute).' es una fecha incorrecta');
           $message=$this->message!==null?$this->message:Yii::t('yii','{attribute} es una fecha incorrecta');
           $this->addError($object,$attribute,$message);
       }
       else
           $object->$attribute=Varios::agregarBarras($object->$attribute);
       

    }


}
?>


me faltaria el detalle del alias
pero no es tan importante

ejemplo

el alias para "CFechaValidaValidator" que sea fechaValida

saludos y gracias!!!
KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users