Ejemplo n.º 1
0
 /**
  * Validates this form
  * @return null
  * @throws zibo\library\validation\exception\ValidationException when one of the fields or
  * the form itself is not validated
  */
 public function validate()
 {
     if (!$this->isSubmitted()) {
         throw new ZiboException('Form is not submitted');
     }
     $this->validationException = new ValidationException();
     $iterator = $this->fields->getIterator();
     foreach ($iterator as $field) {
         $field->validate($this->validationException);
     }
     foreach ($this->validators as $validator) {
         $validator->isValid($this);
     }
     if ($this->validationException->hasErrors()) {
         throw $this->validationException;
     }
 }
Ejemplo n.º 2
0
 /**
  * Sets a validation exception to this form
  * @param zibo\library\validation\exception\ValidationException $exception
  * @return null
  */
 public function setValidationException(ValidationException $exception)
 {
     $this->validationException = $exception;
     foreach ($this->fields as $fieldName => $field) {
         if ($exception->hasErrors($fieldName)) {
             $field->appendToClass(Field::CLASS_VALIDATION_ERROR);
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * Provides a hook for additional form validation
  * @return null
  * @throws zibo\library\validation\exception\ValidationException when a validation error occurs
  */
 public function onProfileFormValidate()
 {
     $validationException = new ValidationException();
     if ($this->isPasswordSubmitted()) {
         $password = $this->getPassword();
         $passwordConfirmation = $this->getPasswordConfirmation();
         $validator = new RequiredValidator();
         if (!$validator->isValid($password)) {
             $validationException->addErrors(self::FIELD_PASSWORD, $validator->getErrors());
         }
         if (!$validator->isValid($passwordConfirmation)) {
             $validationException->addErrors(self::FIELD_PASSWORD_CONFIRM, $validator->getErrors());
         }
         if (!$validationException->hasErrors() && $password != $passwordConfirmation) {
             $error = new ValidationError(self::TRANSLATION_ERROR_PASSWORD_MATCH, "Your passwords do not match");
             $validationException->addErrors(self::FIELD_PASSWORD, array($error));
         }
     }
     if ($validationException->hasErrors()) {
         throw $validationException;
     }
 }