Foreach изображение, загруженное в Node Content: получите URL - PullRequest
0 голосов
/ 23 сентября 2019

Я начинаю с Drupal 8 и хочу получить URL фотографий в контенте, который я создаю, для их отображения.

Контекст: фотография загружает фотографии для клиента.Этот клиент может увидеть это на странице.Чтобы получить эти общие данные, я создал контент для своей съемки с идентификатором.
Что я сделал:

$photos = $shooting->field_shooting_photos->target_id;
Это позволяет мне получить идентификатор каждой загруженной фотографии.Теперь я хочу сделать foreach для $ photos в моем .module, который будет возвращать каждый URL в массиве.Затем я буду использовать этот массив в своей веточке и делать с ним foreach, чтобы возвращать все фотографии.
Я просто не могу понять, как это сделать, думаю, мне придется использовать что-то подобное

$path = $photo_id->getFileUri();
но я не могу понять синтаксис, чтобы получить его в массив.Спасибо за вашу помощь!

1 Ответ

1 голос
/ 26 сентября 2019

Если у вас есть только fid, вам нужно загрузить файл.

use \Drupal\file\Entity\File;

$fid = 123; // Your fid   
$file = File::load($fid);

Оттуда вы можете использовать метод getFileUri для получения URI.Если вы хотите получить полный URL, вы можете воспользоваться функцией file_create_url .

$uri = $file->getFileUri();
// You get : public://directory/file.jpg
$url = file_create_url($uri);
// You get : http://mywebsite.com/sites/default/files/directory/file.jpg
...