【发布时间】:2019-02-25 15:24:12
【问题描述】:
在这种情况下,我有 3 个相关实体
profile --OneToMany--> annualReports --ManyToOne--> photo
在一个循环中,对于一张桌子,我正在检查树枝中是否存在这样的照片
{% set is_photo = profile.annualReports.toArray()[0].photo.id is defined %}
所以,profile 可以有很多 annualReports - 这种特殊情况我只想要第一个“报告”。
问题是我如何在QueryBuilder 中做到这一点?即加入“first Report”(“first”可以基于最小id或者createdAt日期)
更新: 我想问题是如何“限制 1”并指定排序?
【问题讨论】:
-
你的问题我不清楚。但对于您的最后一部分,排序是使用
->orderBy()完成的。要获得更好的树枝,请使用profile.annualReports.first -
对不起,orderBy需要应用到连接表。它是 1 个对象、配置文件,并且加入它是许多报告中的“第一个”。
-
喜欢这个 stackoverflow.com/questions/8161438/… 但在教义/symfony 中
-
你也可以在previus foreach中添加一个条件而不是定义一个变量,检查twig.symfony.com/doc/2.x/tags/for.html#adding-a-condition