Example #1
0
 /**
  * Validates the current model's data
  *
  * @param  Validation $extra_validation Validation object [Optional]
  * @return ORM
  * @throws ORM_Validation_Exception
  */
 public function check(Validation $extra_validation = NULL)
 {
     // Determine if any external validation failed
     $extra_errors = ($extra_validation and !$extra_validation->check());
     // Always build a new validation object
     $this->_validation();
     // add custom rules to $this->_validation();
     Module::event($this->_object_name . '_validation', $this->_validation, $extra_errors);
     $array = $this->_validation;
     if (($this->_valid = $array->check()) === FALSE or $extra_errors) {
         $exception = new ORM_Validation_Exception($this->errors_filename(), $array);
         if ($extra_errors) {
             // Merge any possible errors from the external object
             $exception->add_object('_external', $extra_validation);
         }
         // Fixed memory leak @http://dev.kohanaframework.org/issues/4286
         $this->_validation = NULL;
         throw $exception;
     }
     // Fixed memory leak @http://dev.kohanaframework.org/issues/4286
     $this->_validation = NULL;
     return $this;
 }
Example #2
0
 /**
  * Validates the current model's data
  *
  * @param  Validation $extra_validation Validation object
  * @return ORM
  */
 public function check(Validation $extra_validation = NULL)
 {
     // Determine if any external validation failed
     $extra_errors = ($extra_validation and !$extra_validation->check());
     // Always build a new validation object
     $this->_validation();
     $array = $this->_validation;
     if (($this->_valid = $array->check()) === FALSE or $extra_errors) {
         $exception = new ORM_Validation_Exception($this->errors_filename(), $array);
         if ($extra_errors) {
             // Merge any possible errors from the external object
             $exception->add_object('_external', $extra_validation);
         }
         throw $exception;
     }
     return $this;
 }