You are here

public function FileUrlFieldItemList::referencedEntities in File URL 2.0.x

Same name and namespace in other branches
  1. 8 src/Plugin/Field/FieldType/FileUrlFieldItemList.php \Drupal\file_url\Plugin\Field\FieldType\FileUrlFieldItemList::referencedEntities()

Gets the entities referenced by this field, preserving field item deltas.

Return value

\Drupal\Core\Entity\EntityInterface[] An array of entity objects keyed by field item deltas.

Overrides EntityReferenceFieldItemList::referencedEntities

3 calls to FileUrlFieldItemList::referencedEntities()
FileUrlFieldItemList::delete in src/Plugin/Field/FieldType/FileUrlFieldItemList.php
Defines custom delete behavior for field values.
FileUrlFieldItemList::deleteRevision in src/Plugin/Field/FieldType/FileUrlFieldItemList.php
Defines custom revision delete behavior for field values.
FileUrlFieldItemList::postSave in src/Plugin/Field/FieldType/FileUrlFieldItemList.php
Defines custom post-save behavior for field values.

File

src/Plugin/Field/FieldType/FileUrlFieldItemList.php, line 112

Class

FileUrlFieldItemList
Represents a configurable entity file URL field.

Namespace

Drupal\file_url\Plugin\Field\FieldType

Code

public function referencedEntities() {

  /** @var \Drupal\file_url\FileUrlHandler $file_handler */
  $file_handler = \Drupal::service('file_url.handler');
  if (empty($this->list)) {
    return [];
  }

  // Collect the IDs of existing entities to load, and directly grab the
  // "autocreate" entities that are already populated in $item->entity.
  $target_entities = [];
  foreach ($this->list as $delta => $item) {
    if ($item->target_id !== NULL) {
      $file = $file_handler::urlToFile($item->target_id);
      $target_entities[$delta] = $file;
    }
    elseif ($item
      ->hasNewEntity()) {
      $target_entities[$delta] = $item->entity;
    }
  }

  // Ensure the returned array is ordered by deltas.
  ksort($target_entities);
  return $target_entities;
}