You are here

public function DynamicEntityReference::getTargetEntities in Entity Usage 8.3

Same name and namespace in other branches
  1. 8.2 src/Plugin/EntityUsage/Track/DynamicEntityReference.php \Drupal\entity_usage\Plugin\EntityUsage\Track\DynamicEntityReference::getTargetEntities()

Retrieve the target entity(ies) from a field item value.

Parameters

\Drupal\Core\Field\FieldItemInterface $item: The field item to get the target entity(ies) from.

Return value

string[] An indexed array of strings where each target entity type and ID are concatenated with a "|" character. Will return an empty array if no target entity could be retrieved from the received field item value.

Overrides EntityUsageTrackInterface::getTargetEntities

File

src/Plugin/EntityUsage/Track/DynamicEntityReference.php, line 23

Class

DynamicEntityReference
Tracks usage of entities related in dynamic_entity_reference fields.

Namespace

Drupal\entity_usage\Plugin\EntityUsage\Track

Code

public function getTargetEntities(FieldItemInterface $item) {

  /** @var \Drupal\dynamic_entity_reference\Plugin\Field\FieldType\DynamicEntityReferenceItem$item */
  $item_value = $item
    ->getValue();
  if (empty($item_value['target_id']) || empty($item_value['target_type'])) {
    return [];
  }

  // Only return a valid result if the target entity exists.
  if (!$this->entityTypeManager
    ->getStorage($item_value['target_type'])
    ->load($item_value['target_id'])) {
    return [];
  }
  return [
    $item_value['target_type'] . '|' . $item_value['target_id'],
  ];
}