1 node.entity.inc protected NodeStorageController::saveRevision(EntityInterface $entity)

Saves a node revision.

Parameters

Node $entity: The node entity whose revision should be saved.

File

core/modules/node/node.entity.inc, line 520
Entity controller and class for nodes.

Class

NodeStorageController
Controller class for nodes.

Code

protected function saveRevision(EntityInterface $entity) {
  $record = clone $entity;
  $record->uid = $entity->revision_uid;
  $record->timestamp = $entity->revision_timestamp;

  if (empty($entity->{$this->revisionKey}) || !empty($entity->revision)) {
    backdrop_write_record($this->revisionTable, $record);
    // Only update the base node table if this revision is the active
    // revision.
    if ($entity->isActiveRevision()) {
      db_update($this->entityInfo['base table'])
        ->fields(array($this->revisionKey => $record->{$this->revisionKey}))
        ->condition($this->idKey, $entity->{$this->idKey})
        ->execute();
    }
  }
  else {
    backdrop_write_record($this->revisionTable, $record, $this->revisionKey);
  }
  // Make sure to update the new revision key for the entity.
  $entity->{$this->revisionKey} = $record->{$this->revisionKey};
}