Beispiel: Ich möchte alle Tag-Namen erhalten , die sich in field_tags von Knoten 5 befinden.
Ich kann die target_id mit getValues () abrufen .
Das Problem ist jedoch, dass ich nicht weiß, zu welcher Entität der Wert target_id gehört. Könnte eine Knoten-ID, eine Term-ID oder eine Benutzer-ID sein. Ohne diese Informationen kann ich die target_id nicht verwenden, um den Namen des Tags abzurufen.
Wie kann ich alle Namen eines Entitätsreferenzfelds abrufen?
$node->toArray();
sieht sicher viel kürzer und sauberer aus als mit\Drupal::service('entity_field.manager')->getFieldDefinitions('node', 'article');
print_r($entity->toArray())
Es löst dieses Problem. Ich kann alle Felddetails abrufen. Ich danke dir sehr.Ein Entitätsreferenzfeld kann per Definition nur auf einen Entitätstyp abzielen, sodass Sie durch Aufrufen
getSetting()
der Felddefinition wissen, was Ihr Zieltyp ist .Oder noch besser, verwenden Sie
EntityReferenceFieldItemList::referencedEntities()
diese Option, um die referenzierten Entitäten des Knotens und die zugehörigen Daten aufzurufen, die Sie benötigen.quelle
print_r($node->field_tag->referencedEntities());
Es scheint ein Ressourcenfresser zu sein, ich hatte meine AWS- Instanz aktualisiert , nur um dies tun zu können, da ich immer wieder WSOD bekam.Or better yet
Methode ermitteln kann. Die erste Methode ist gut, erfordert jedoch if-Anweisungen, um den Zieltyp zu überprüfen und dann den Wert abzurufen. Berdirs Antwort ist effizienter, da keine Überprüfungen erforderlich sind.target_type
Wert aus einementity_reference
Feld abrufen und suchte hoch und niedrig danach ... bis Sie meine Frage hier beantwortet haben.