我在获取父对象时如何获取对象的数据例如,进程具有操作,我正在获取进程DOCTRINE

问题描述

比方说,我有一个名为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