Ich habe ein Knotenobjekt mit dem Namen Bildfeld field_image
. Wenn ich es tue
$node
->get('field_image')
->first()
->getValue()
Ich erhalte ein Array mit einigen Eigenschaften anstelle eines Entitätsobjekts. Das Array sieht folgendermaßen aus:
'target_id' => string '8' (length=1)
'alt' => string '' (length=0)
'title' => string '' (length=0)
'width' => string '587' (length=3)
'height' => string '458' (length=3)
'_loaded' => boolean true
'_accessCacheability' =>
object(Drupal\Core\Cache\CacheableMetadata)[1092]
protected 'cacheContexts' =>
array (size=0)
...
protected 'cacheTags' =>
array (size=0)
...
protected 'cacheMaxAge' => int -1
Muss ich die Dateientität manuell laden, target_id
oder gibt es eine Möglichkeit, das referenzierte Entitätsobjekt automatisch von der Instanz von abzurufen Drupal\image\Plugin\Field\FieldType\ImageItem
?
Warum ist die referenzierte Entität nicht über Getter erreichbar? Es könnte faul geladen werden, wenn es nicht sofort verfügbar ist.
PHP Fatal error: Call to undefined method Drupal\image\Plugin\Field\FieldType\ImageItem::getTarget()
. Funktioniert jedoch $node->get('imagefield')->referencedEntities()
dank der Tatsache, dass eine $node->get('imagefield')
Instanz zurückgegeben wird, EntityReferenceFieldItemList
die die referencedEntities()
Methode implementiert . Ihre Lösung ist also nur teilweise - sie funktioniert für Listen, aber nicht für einzelne Felder.