Как получить URL-адрес файлового поля данного узла?

12

$node->field_fileдает мне FileFieldItemList, в то время как первая запись, кажется, FileItem .

$node->field_file->getValue()дает мне целое число (я думаю, идентификатор файла). Как я могу получить загружаемый файл URI из этого?

Alex
источник

Ответы:

15

Сначала вам нужно загрузить его с помощью fid:

  $file = \Drupal\file\Entity\File::load($fid);

И после :

  $imageSRC = file_create_url($file->getFileUri());
Kevin
источник
2
Вы можете использовать File :: url (), чтобы сделать это короче: $ imageSRC = $ file-> url ();
Кейтм
File:url()устарело с 8.7.x. Смотрите: drupal.org/node/3019830
Кевен
2

Также можно сделать однострочную магическим методом:

$node->field_file->entity->getFileUri();

Или сделать в виде строки

Опция 1: $node->field_file->entity->url();

Вариант 2: file_create_url($node->field_file->entity->getFileUri());

zanvidmar
источник