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); } } ?>