Skip to content

Instantly share code, notes, and snippets.

@keopx
Created April 18, 2017 13:18
Show Gist options
  • Save keopx/5815d8dc505f0d2e9c23d405438ce054 to your computer and use it in GitHub Desktop.
Save keopx/5815d8dc505f0d2e9c23d405438ce054 to your computer and use it in GitHub Desktop.
How to get instance of referenced entity - The path to referenced entity is very long
<?php
// $id = some node ID
// $field = field name for entity reference field
$node = Node::load($id);
/** @var \Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem $referenceItem */
$referenceItem = $node->get($field)->first();
/** @var \Drupal\Core\Entity\Plugin\DataType\EntityReference $entityReference */
$entityReference = $referenceItem->get('entity');
/** @var \Drupal\Core\Entity\Plugin\DataType\EntityAdapter $entityAdapter */
$entityAdapter = $entityReference->getTarget();
/** @var \Drupal\Core\Entity\EntityInterface $referencedEntity */
$referencedEntity = $entityAdapter->getValue();
// At this point $referencedEntity is the referenced entity object.
/**
* Sort mode
*/
$referencedEntity = $node
->get($field)
->first()
->get('entity')
->getTarget()
->getValue();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment