问题描述
比方说,我有一个名为Process的类,它具有名称,数据等。然后,此流程类具有一个名为action的子类,这些子类具有:[name,year,data]。因此,当我要执行所有流程时,我只想获取设置在2020年的操作,而不是获取所有年份的所有操作。
在学说上有什么办法吗?
类似于选择过程的地方,其中PROCESS.ACTIONS.YEAR 2020年(但在原则上)
对不起,我的解释不好,希望您能理解。
ps。我正在尝试将所有进程打印在一个树枝文件中,但我只想要最新操作。
非常感谢您
解决方法
IF 您已经正确定义了关系,可以这样做:
SELECT process
FROM App\Entity\Process process
LEFT JOIN process.actions action
WHERE action.year = 2020
或在流程存储库中
return $this->createQueryBuilder('process')
->leftJoin('process.actions','action')
->where('action.year = 2020')
->getQuery()
->getResult();
但是不确定是否重复。在DQL查询中,您可能只说SELECT DISTINCT process
等。我猜在查询生成器变体中,您可能必须在->select('DISTINCT process')
之前添加getQuery
。