Example #1
0
 /**
  * Validate form data
  */
 public function onValidate()
 {
     $this->errors = array();
     $elements = $this->getElements();
     foreach ($this->formData as $index => $row) {
         try {
             $this->form->dispatch(Form::ON_BEFORE_VALIDATE, $this, $row);
         } catch (\Simplify\ValidationException $e) {
             $this->errors = array_merge_recursive($this->errors, $e->getErrors());
         }
         $elements->rewind();
         while ($elements->valid()) {
             $element = $elements->current();
             $elements->next();
             if ($element->validate === true || $this->show($element->validate)) {
                 try {
                     $element->onValidate($this, $row);
                 } catch (\Simplify\ValidationException $e) {
                     $this->errors[$element->getName()] = $e->getErrors();
                     $element->state = 'has-error';
                     $element->stateMessage = $this->errors[$element->getName()];
                 }
             }
         }
         try {
             $this->form->dispatch(Form::ON_VALIDATE, $this, $row);
         } catch (\Simplify\ValidationException $e) {
             $this->errors = array_merge_recursive($this->errors, $e->getErrors());
         }
     }
     if (!empty($this->errors)) {
         throw new \Simplify\ValidationException($this->errors);
     }
 }