Wie erhalte ich am einfachsten ein Bild (seinen Pfad) aus dem in Drupal 8 enthaltenen Artikelinhaltstyp?
Was ich habe, ist eine Einheit. Die Verwendung $image = $node->fields['field_image']
gibt mir jedoch eine verdammt gute Struktur.
Gibt es keinen einfacheren Weg, um den Bildpfad zu erhalten? Außerdem kann ich die URL darin nicht finden. Ich erhalte eine Art Ziel-ID (die Datei-ID?).
get_class ($node->fields['field_image'])
es dir?file_load()
eine der verfügbaren Methoden verwendenDrupal\file\FileInterface
Antworten:
Hab das vorher nicht gesehen.
Der kürzeste Weg, um die referenzierte Entität für ein Feld mit einem Wert zu erhalten, ist folgender:
Sie können das Delta auch explizit angeben:
Dies funktioniert mit viel ArrayAccess und __get () Magie.
Siehe auch den tollen Spickzettel unter http://wizzlern.nl/drupal/drupal-8-entity-cheat-sheet . und https://www.drupal.org/node/1795854 und die anderen Dokumentationsseiten dort für weitere Informationen (noch sehr viel in Arbeit).
quelle
Was in D8 für mich gearbeitet hat, ist:
Das Verwenden
kint($node->get('field_image')->entity)
und Durchsuchen des Arrays war sehr hilfreichDann habe ich in meiner Zweigdatei Folgendes verwendet:
quelle
Meine Lösung bestand also darin, die im Knotenobjekt gefundene Methode "referencedEntities ()" zu verwenden. Dies gab mir ein Array von Dateiobjekten, die ich durchlaufen und die Methode "url ()" aus den Dateiobjekten verwenden konnte, um einen gültigen Pfad abzurufen.
quelle
Wenn Ihr Knoten mehr als ein Bild hat, können Sie dies verwenden, um ein Array der Bild-URLs abzurufen (hilfreich, um Diashow-Module unter vielen anderen nützlichen Dingen zu erstellen).
Das imageUrls-Array enthält alle URLs für alle Bilder, die dem Knotenfeld zugeordnet sind. Hoffe das hilft.
quelle