public ContentEntityBase::createDuplicate()
Creates a duplicate of the entity.
Return value
static A clone of $this with all identifiers unset, so saving it inserts a new entity into the storage system.
Overrides Entity::createDuplicate
File
- core/lib/Drupal/Core/Entity/ContentEntityBase.php, line 981
Class
- ContentEntityBase
- Implements Entity Field API specific enhancements to the Entity class.
Namespace
Drupal\Core\Entity
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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(); $duplicate ->{ $entity_type ->getKey( 'id' )}->value = NULL; $duplicate ->enforceIsNew(); // 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; } return $duplicate ; } |
Please login to continue.