如何使用树枝获取图像的路径

时间:2019-04-11 16:01:54

标签: symfony twig

我正在尝试在树枝视图中显示图像。
为此,我向视图发送了一个名为“技巧”的对象。
“技巧”对象具有一个名为“ 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 :(得分:0)

请注意,数据库中的路径在系统中是绝对路径。为了显示图像,赋予Twig资产函数的字符串应该相对于您的公共目录(在您的情况下为uploads / images / e1fe392fa9a8de3c669c298464209bd9.jpeg)。

您有多种解决方案,如果所有图像都位于同一位置,这就是其中一种:

首先,您可以在 config / packages / twig.yaml 中为公共目录定义全局Twig变量(我在这里选择名称​​ image_dir

pSwapchainImageCount:           uint32_t* = 236

然后在Twig文件中,您可以编写如下内容:

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

如您所见,我将公共图像目录的全局变量与您的File实体filename属性连接起来,以获得图像的公共路径!

或者,您可以在文件实体中添加吸气剂,以将公共映像目录作为实体的常量为您进行串联。给您几首曲目。