Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ContentEntityBase.php

function ContentEntityBase::createDuplicate

Overrides EntityBase::createDuplicate

2 calls to ContentEntityBase::createDuplicate()
BlockContent::createDuplicate in core/modules/block_content/src/Entity/BlockContent.php
Creates a duplicate of the entity.
BlockContent::createDuplicate in core/modules/block_content/src/Entity/BlockContent.php
Creates a duplicate of the entity.
1 method overrides ContentEntityBase::createDuplicate()
BlockContent::createDuplicate in core/modules/block_content/src/Entity/BlockContent.php
Creates a duplicate of the entity.

File

core/lib/Drupal/Core/Entity/ContentEntityBase.php, line 1177

Class

ContentEntityBase
Implements Entity Field API specific enhancements to the Entity class.

Namespace

Drupal\Core\Entity

Code

public function createDuplicate() {
    if ($this->translations[$this->activeLangcode]['status'] == static::TRANSLATION_REMOVED) {
        throw new \InvalidArgumentException("The entity object refers to a removed translation ({$this->activeLangcode}) and cannot be manipulated.");
    }
    $duplicate = clone $this;
    $entity_type = $this->getEntityType();
    if ($entity_type->hasKey('id')) {
        $duplicate->{$entity_type->getKey('id')}->value = NULL;
    }
    // Explicitly mark the entity as new and the default revision. A new entity
    // is always the default revision, but that persists only until the entity
    // is saved.
    $duplicate->enforceIsNew();
    $duplicate->isDefaultRevision(TRUE);
    // Check if the entity type supports UUIDs and generate a new one if so.
    if ($entity_type->hasKey('uuid')) {
        $duplicate->{$entity_type->getKey('uuid')}->value = $this->uuidGenerator()
            ->generate();
    }
    // Check whether the entity type supports revisions and initialize it if so.
    if ($entity_type->isRevisionable()) {
        $duplicate->{$entity_type->getKey('revision')}->value = NULL;
        $duplicate->loadedRevisionId = NULL;
    }
    return $duplicate;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal