Как мне проще всего получить изображение (его путь) из типа контента статьи, включенного в Drupal 8?
То, что у меня есть, это сущность. Использование $image = $node->fields['field_image']
дает мне адскую структуру, хотя.
Нет ли более простого способа получить путь к изображению? Также я не могу найти URL в этом, что я получаю, это своего рода target_id (идентификатор файла?).
get_class ($node->fields['field_image'])
тебе дает?file_load()
один из методов, доступных наDrupal\file\FileInterface
Ответы:
Не видел этого раньше.
Кратчайший способ получить ссылочную сущность для поля с одним значением:
Вы также можете указать дельту явно:
Это работает с большим количеством волшебства ArrayAccess и __get ().
Смотрите также большой шпаргалку на http://wizzlern.nl/drupal/drupal-8-entity-cheat-sheet . и https://www.drupal.org/node/1795854 и другие страницы документации для получения дополнительной информации (все еще очень много работы в процессе).
источник
То, что в итоге работало на меня в D8:
Использование
kint($node->get('field_image')->entity)
и просмотр массива было очень полезноТогда в моем файле ветки я использовал:
источник
Поэтому я решил использовать метод "referencedEntities ()", найденный в объекте node. Это дало мне массив File-объектов, которые я мог бы перебрать и использовать метод url () из файловых объектов для получения правильного пути.
источник
Если ваш узел имеет более одного изображения, вы можете использовать это для получения массива URL-адресов изображений (полезно для создания модулей слайд-шоу среди множества других полезных вещей)
Массив imageUrls будет содержать все URL для любых изображений, связанных с полем узлов. Надеюсь это поможет.
источник