예제 #1
0
파일: Control.php 프로젝트: gossi/webform
 /**
  * Validates the receiver
  * 
  * @throws Errors
  */
 public function validate()
 {
     // reset validation
     $this->errors = array();
     $val = $this->getRequestValue();
     // check required
     if ($this->required && empty($val)) {
         $this->addError(sprintf($this->webform->getI18n('error/required'), $this->label));
     }
     // validate validators
     foreach ($this->validators as $validator) {
         try {
             $validator->validate($val);
         } catch (\Exception $e) {
             $this->addError($e->getMessage());
         }
     }
     // validate additional tests
     foreach ($this->tests as $test) {
         try {
             $test->validate($val);
         } catch (\Exception $e) {
             $this->addError($e->getMessage());
         }
     }
     // throw errors if present
     if ($this->hasErrors()) {
         $errors = new WebformErrors();
         $errors->addErrors($this->errors);
         throw $errors;
     }
 }
예제 #2
0
파일: Webform.php 프로젝트: gossi/webform
 /**
  *
  * @throws \gossi\webform\WebformErrors
  */
 public function validate()
 {
     $this->errors = array();
     foreach ($this->areas as $area) {
         try {
             $area->validate();
         } catch (WebformErrors $ex) {
             $this->errors = array_merge($this->errors, $ex->getErrors());
         }
     }
     foreach ($this->controls as $control) {
         try {
             $control->validate();
         } catch (WebformErrors $ex) {
             $this->errors = array_merge($this->errors, $ex->getErrors());
         }
     }
     foreach ($this->tests as $test) {
         try {
             $test->validate();
         } catch (\Exception $e) {
             $this->addError($e->getMessage());
         }
     }
     if ($this->hasErrors()) {
         $e = new WebformErrors();
         $e->addErrors($this->errors);
         throw $e;
     }
 }