public function Replicator::postCloneEntityField in Replicate 8
Postprocess a cloned entity field.
A public API method so modules can e.g. clone a field partially.
Parameters
\Drupal\Core\Field\FieldItemListInterface $target_field: The cloned field.
1 call to Replicator::postCloneEntityField()
- Replicator::cloneEntityField in src/Replicator.php 
- Clone an entity field to another.
File
- src/Replicator.php, line 182 
Class
- Replicator
- Class Replicator. Manages the replication of an entity.
Namespace
Drupal\replicateCode
public function postCloneEntityField(FieldItemListInterface $target_field) {
  $entity = $target_field
    ->getEntity();
  if (!$entity instanceof FieldableEntityInterface) {
    // @todo Can this ever happen? The interface only assures EntityInterface.
    throw new FieldException($this
      ->t('Trying to clone into non fieldable Entity.'));
  }
  /** @var FieldableEntityInterface $entity */
  $violations = $target_field
    ->validate();
  if ($violations
    ->count()) {
    // This autocasts violations to string.
    $t_args = [
      '%violations' => implode(' & ', $violations),
    ];
    throw new FieldException($this
      ->t('Trying to clone into incompatible field: %violations', $t_args));
  }
  $this
    ->dispatchEventCloneEntityField($entity, $target_field
    ->getName(), $target_field
    ->getFieldDefinition());
}