¿Cómo obtengo más fácilmente una imagen (su ruta) del tipo de contenido del artículo incluido en Drupal 8?
Lo que tengo es una entidad. Sin $image = $node->fields['field_image']
embargo, usar me da una estructura infernal.
¿No hay una manera más fácil de obtener la ruta de la imagen? Además, no puedo encontrar la URL en esto, lo que obtengo es algún tipo de target_id (¿la ID del archivo?).
get_class ($node->fields['field_image'])
te da?file_load()
y uno de los métodos disponibles enDrupal\file\FileInterface
Respuestas:
No vi esto antes.
La forma más corta de obtener la entidad referenciada para un campo de valor único es esta:
También puede especificar el delta explícitamente:
Esto funciona con mucha magia ArrayAccess y __get ().
Vea también la gran hoja de trucos en http://wizzlern.nl/drupal/drupal-8-entity-cheat-sheet . y https://www.drupal.org/node/1795854 y las otras páginas de documentación allí para obtener más información (todavía hay mucho trabajo en progreso).
fuente
Lo que terminó trabajando para mí en D8 es:
Usar
kint($node->get('field_image')->entity)
y mirar a través de la matriz fue muy útilLuego, en mi archivo de ramita, utilicé:
fuente
Entonces, mi solución fue usar el método "referencedEntities ()" que se encuentra en el nodoobjeto. Esto me dio una matriz de objetos de archivo que pude recorrer y usar el método "url ()" de los objetos de archivo para recuperar una ruta válida.
fuente
Si su nodo tiene más de una imagen, puede usar esto para obtener una matriz de las URL de imágenes (útil para crear módulos de presentación de diapositivas entre muchas otras cosas útiles)
La matriz imageUrls contendrá todas las URL para cualquier imagen asociada con el campo de nodos. Espero que esto ayude.
fuente