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_idoder 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, EntityReferenceFieldItemListdie die referencedEntities()Methode implementiert . Ihre Lösung ist also nur teilweise - sie funktioniert für Listen, aber nicht für einzelne Felder.