You are here

public function ContentEntityStorageBase::deleteRevision in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php \Drupal\Core\Entity\ContentEntityStorageBase::deleteRevision()

Delete a specific entity revision.

A revision can only be deleted if it's not the currently active one.

@todo Deprecated in Drupal 8.5.0 and will be removed before Drupal 9.0.0. Use \Drupal\Core\Entity\RevisionableStorageInterface instead.

Parameters

int $revision_id: The revision id.

Overrides EntityStorageInterface::deleteRevision

See also

https://www.drupal.org/node/2926958

https://www.drupal.org/node/2927226

1 method overrides ContentEntityStorageBase::deleteRevision()
ContentEntityNullStorage::deleteRevision in core/lib/Drupal/Core/Entity/ContentEntityNullStorage.php
Delete a specific entity revision.

File

core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php, line 759

Class

ContentEntityStorageBase
Base class for content entity storage handlers.

Namespace

Drupal\Core\Entity

Code

public function deleteRevision($revision_id) {

  /** @var \Drupal\Core\Entity\ContentEntityInterface $revision */
  if ($revision = $this
    ->loadRevision($revision_id)) {

    // Prevent deletion if this is the default revision.
    if ($revision
      ->isDefaultRevision()) {
      throw new EntityStorageException('Default revision can not be deleted');
    }
    $this
      ->invokeFieldMethod('deleteRevision', $revision);
    $this
      ->doDeleteRevisionFieldItems($revision);
    $this
      ->invokeHook('revision_delete', $revision);
  }
}