Как получить путь изображения с помощью ветки - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь отобразить изображение в виде веточки.
Для этого я отправляю на вид объект под названием "трюк".
Объект "уловки" имеет свойство "cover".
свойство cover содержит объект File внутри него

как мне правильно указать путь?

Это дамп объекта, с которым я работаю:

Trick {  
-id: 23  
-name: "edit test"    
-cover: File {  
  path: "/Users/M_T/Desktop/snow-tricks/public/uploads/images"
  filename: "e1fe392fa9a8de3c669c298464209bd9.jpeg"  
  basename: "e1fe392fa9a8de3c669c298464209bd9.jpeg"  
  pathname: "/Users/M_T/Desktop/snow-tricks/public/uploads/images/e1fe392fa9a8de3c669c298464209bd9.jpeg"  
  extension: "jpeg"  
  realPath: "/Users/M_T/Desktop/snow-tricks/public/uploads/images/e1fe392fa9a8de3c669c298464209bd9.jpeg"

}    
}  

Вот как я пытался отобразить изображение

<img src="{{ asset('' ~ trick.cover ) }}">

это ошибка, которую я получаю в консоли

http://localhost:8000/Users/M_T/Desktop/snow-tricks/public/uploads/images/e1fe392fa9a8de3c669c298464209bd9.jpeg 404 (Not Found)

1 Ответ

0 голосов
/ 11 апреля 2019

Будьте осторожны, ваш путь в базе данных является абсолютным от вашей системы.Чтобы отобразить изображение, строка, переданная функции актива Twig, должна быть относительной из вашего публичного каталога (uploads / images / e1fe392fa9a8de3c669c298464209bd9.jpeg в вашем случае).

У вас есть несколько решений, чтобы сделать это, и здесьявляется одним из них, если все ваше изображение будет находиться в одном месте:

Сначала вы можете определить глобальную переменную Twig для общедоступного каталога в config / packages / twig.yaml (Я выбираю имя image_dir здесь)

twig:
    globals:
        image_dir: 'uploads/images/'

Тогда в вашем файле Twig вы можете написать что-то вроде этого:

<img src="{{ asset(image_dir ~ trick.cover.filename ) }}">

Как видите, я объединяюглобальная переменная публичного каталога изображений со свойством имени файла сущности File, чтобы получить общедоступный путь к изображению!

В качестве альтернативы, вы можете добавить геттер в вашу файловую сущность, чтобы выполнить объединение для вас с публичным образомкаталог как константа вашей сущности.Просто даю тебе несколько треков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...