Example #1
0
 public function save()
 {
     // Force validations to run
     if ($this->validationPassed === false) {
         $validated = $this->validate();
         if ($validated !== true) {
             throw new ModelException("Failed to validate the model [{$this->package}] " . json_encode($validated), $validated);
         }
     }
     $this->datastore->beginTransaction();
     $this->preAddHook();
     $this->datastore->setData($this->datastore->data, $this->fields);
     $id = $this->saveImplementation();
     $this->postAddHook($id, $this->getData());
     SystemAuditTrailModel::logAdd($this, $id);
     $this->datastore->endTransaction();
     $this->postCommitHook($id, $this->getData());
     return $id;
 }