示例#1
0
 public function validate()
 {
     $validator = new Validator();
     $aData = $this->export();
     foreach ($this->fields() as $alias => $field) {
         if (!empty($field['Validation'])) {
             $val_group = new ValidationRulesGroup();
             foreach ($field['Validation'] as $v_type => $v_params) {
                 if ($v_type == 'Required' && $v_params === false) {
                     continue;
                 }
                 if (!is_array($v_params)) {
                     $v_params = array($v_params);
                 }
                 $class_name = 'Validation' . $v_type . 'Rule';
                 $all_params = array_merge(array($alias, @$field['Title']), $v_params);
                 $val_group->add(new $class_name($all_params));
             }
             $validator->addGroup($val_group);
         }
     }
     if (($res = $validator->forceCheck($aData)) === true) {
         return true;
     } else {
         $this->errors = $res;
     }
     return false;
 }
示例#2
0
 public function addRules($rules)
 {
     $oGroup = new ValidationRulesGroup();
     foreach ($rules as $rule) {
         $oGroup->add($rule);
     }
     $this->aValidators[] = $oGroup;
     return true;
 }
示例#3
0
 public function validate(Object $oObject)
 {
     $scenario = $oObject->isNew() ? 'Create' : 'Update';
     $validator = new Validator();
     $aData = $oObject->export();
     foreach ($this->fields() as $alias => $field) {
         if (!empty($field['Validation'])) {
             $val_group = new ValidationRulesGroup();
             foreach ($field['Validation'] as $v_type => $v_params) {
                 if (!empty($v_params['Scenario']) && $v_params['Scenario'] != $scenario) {
                     continue;
                 } else {
                     if (!empty($v_params['Scenario'])) {
                         unset($v_params['Scenario']);
                     }
                 }
                 if ($v_type == 'Required' && $v_params === false) {
                     continue;
                 }
                 if (!is_array($v_params)) {
                     $v_params = array($v_params);
                 }
                 $class_name = 'Validation' . $v_type . 'Rule';
                 $all_params = array_merge(array($alias, @$field['Title']), $v_params);
                 $val_group->add(new $class_name($all_params));
             }
             $validator->addGroup($val_group);
         }
     }
     if (($res = $validator->forceCheck($aData)) === true) {
         return true;
     } else {
         $oObject->setErrors($res);
     }
     return false;
 }