public function EntityUsage::listTargets in Entity Usage 8.3
Same name and namespace in other branches
- 8.4 src/EntityUsage.php \Drupal\entity_usage\EntityUsage::listTargets()
- 8.2 src/EntityUsage.php \Drupal\entity_usage\EntityUsage::listTargets()
Provide a list of all referenced target entities for a source entity.
Parameters
\Drupal\Core\Entity\EntityInterface $source_entity: The source entity to check for references.
Return value
array An associative array where keys are target entity types, and values are indexed arrays of target entity IDs.
Overrides EntityUsageInterface::listTargets
File
- src/
EntityUsage.php, line 265
Class
- EntityUsage
- Defines the entity usage base class.
Namespace
Drupal\entity_usageCode
public function listTargets(EntityInterface $source_entity) {
// Entities can have string IDs. We support that by using different columns
// on each case.
$source_id_column = $this
->isInt($source_entity
->id()) ? 'source_id' : 'source_id_string';
$result = $this->connection
->select($this->tableName, 'e')
->fields('e', [
'target_id',
'target_id_string',
'target_type',
])
->condition($source_id_column, $source_entity
->id())
->condition('source_type', $source_entity
->getEntityTypeId())
->orderBy('target_id', 'DESC')
->execute();
$references = [];
foreach ($result as $usage) {
$target_id_value = !empty($usage->target_id) ? $usage->target_id : $usage->target_id_string;
$references[$usage->target_type][] = $target_id_value;
}
return $references;
}