Jak uzyskać adres URL pola pliku danego węzła?

12

$node->field_filedaje mi FileFieldItemList, podczas gdy pierwszy wpis wydaje się być FileItem .

$node->field_file->getValue()daje mi liczbę całkowitą (chyba identyfikator pliku). Jak mogę faktycznie pobrać plik URI z tego pliku?

Alex
źródło

Odpowiedzi:

16

Najpierw musisz załadować go z FID:

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

I po :

  $imageSRC = file_create_url($file->getFileUri());
Kevin
źródło
2
Możesz użyć File :: url (), aby to skrócić: $ imageSRC = $ file-> url ();
keithm
File:url()jest przestarzałe z dniem 8.7.x. Zobacz: drupal.org/node/3019830
Keven
2

Możliwe jest również wykonanie jednej linijki za pomocą magicznej metody:

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

Lub renderować jako ciąg

Opcja 1: $node->field_file->entity->url();

Opcja 2: file_create_url($node->field_file->entity->getFileUri());

zanvidmar
źródło