Example #1
0
 /**
  * Update database record.
  */
 private function update()
 {
     if (count($this->modified_fields)) {
         $updates = [];
         foreach ($this->modified_fields as $modified_field) {
             $updates[$modified_field] = $this->values[$modified_field];
         }
         if ($this->primary_key_modified) {
             $old_id = isset($this->old_values['id']) ? $this->old_values['id'] : $this->getId();
             if ($this->pool->exists(get_class($this), $this->getId())) {
                 throw new LogicException('Object #' . $this->getId() . " can't be overwritten");
             } else {
                 $this->connection->update($this->table_name, $updates, $this->getWherePartById($old_id));
             }
         } else {
             $this->connection->update($this->table_name, $updates, $this->getWherePartById($this->getId()));
         }
         $this->values = array_merge($this->values, $this->refreshGeneratedFieldValues($this->getId()));
         $this->setAsLoaded();
     }
 }