Doctrine orm Symfony3/Doctrine从数据库加载数据后,如何执行一些代码?

Doctrine orm Symfony3/Doctrine从数据库加载数据后,如何执行一些代码?,doctrine-orm,twig,symfony,Doctrine Orm,Twig,Symfony,我来自科哈纳,我问了几个问题,这些问题与我遇到的一个问题有关,我需要找出如何做到这一点。我对Symfony和学说非常陌生,喜欢学习新的框架和正确的编码方法。然而,我发现使用它很令人沮丧,但却很强大 这是我的基本问题,我会尽量简短。我有一张products表和一张products\u images表。通过遵循Symfony的教程,我已经能够为这两个元素创建实体并映射关系,生成getter和setter,创建存储库,以及整个bit。但这就是它变得黏糊糊的地方 product\u images表只包含

我来自科哈纳,我问了几个问题,这些问题与我遇到的一个问题有关,我需要找出如何做到这一点。我对Symfony和学说非常陌生,喜欢学习新的框架和正确的编码方法。然而,我发现使用它很令人沮丧,但却很强大

这是我的基本问题,我会尽量简短。我有一张
products
表和一张
products\u images
表。通过遵循Symfony的教程,我已经能够为这两个元素创建实体并映射关系,生成getter和setter,创建存储库,以及整个bit。但这就是它变得黏糊糊的地方

product\u images
表只包含图像的名称,而不包含路径,如果我要在html中构造有用的href,显然需要该路径。products表通过在web上爬行并通过该方法获取产品来填充产品,并且作为要求我编写其网站的人员的要求,我需要将图像分离到表示它们从何处爬网的目录中。图像的位置经常更改,因此我不想将路径存储在数据库中

因此,为了让我的问题保持简单,我需要以某种方式编写一些逻辑来检查图像从何处爬网,然后构造一个路径字符串传递到我的小树枝模板,然后附加图像名称……所有这些都是为了创建有效的图像标记或href


我上一次试图找到解决方案是修改实体中图像名称的getter,但由于我正在使用
createQueryBuilder()
执行一些DQL,因此似乎没有使用getter,现在我没有什么要做的。我在官方的条令网站上找不到任何文件可以帮助我绕过这个问题,我只需要知道如何克服这个问题。有人能帮忙吗?

如果路径是静态的,原则与您的问题无关,您可以使用常量或参数来定义它

然后你必须添加一个getter

getImageWebPath() {
   return self::PRODUCT_WEB_PATH. $this->getImageName();
}

如果图像存储在一个参数中,您可以使用很多工具:在图像名称之前附加路径的twig函数、设置实体路径的服务或直接获取twig参数。。。etc

让我们暂时跳过条令。你怎么能猜出路径?你怎么知道它是从哪里来的?我想你是在问从数据库加载图像后如何执行一些代码?如果是这样,请查看条令事件系统,尤其是加载后事件。pogeybait,-1表示没有“写一个总结具体问题的标题”。有关更多详细信息,请参阅链接。特别是,当用户搜索类似问题时,正确的标题非常重要。你能编辑你的文章并修改标题吗?此外,DQL与查询生成器不同!你能确认你是否正在使用吗?谢谢@Cerad是的,我就是这么想的asking@AlvinBunk由于我不熟悉Symfony和学说,我不知道如何准确地表达我的问题,因为这两个问题都使用了我习惯的不同术语。我所能告诉您的是,为了避免延迟查询加载或其调用,我在一个存储库中创建了一个方法,在该存储库中我使用createQueryBuilder()来构建查询。它运行良好,但在细枝模板中,我只能引用我在createQueryBuilder中选择的字段。由于我正在获取图像名称并知道站点从何处爬网,因此我目前的解决方案是修改图像的数组索引并预先附加路径。我使用createQueryBuilder(),它使用反射(而不是我的文字)因此,如果我尝试使用select()子句中所选字段以外的任何内容,则不会使用getter,并在Twig中导致错误。