如何在我获取父对象时获取对象的数据(例如进程有动作,我正在获取进程)DOCTRINE
How to fetch data of an object when im getting the parent object (ex. process have actions, im fetching process) DOCTRINE
假设我有一个名为 class 的进程,它有名称、数据等。然后,这个进程 class 有一个名为 actions 的子class 具有:[姓名、年份、数据]。因此,当我想获取所有流程时,我只想获取将年份设置为 2020 年的操作,而不是获取所有年份的所有操作。
教义上有没有办法做到这一点?
类似 SELECT 的流程 PROCESS.ACTIONS.YEAR 类似 2020(但在教义上)
抱歉不好解释,希望您能理解。
ps。我正在尝试在一个 twig 文件中打印所有进程,但我只想要最新的操作。
非常感谢
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-Query 中,您可能只说 SELECT DISTINCT process
等。而且我猜想在查询构建器变体中,您可能必须在 getQuery
.[= 之前添加 ->select('DISTINCT process')
15=]
假设我有一个名为 class 的进程,它有名称、数据等。然后,这个进程 class 有一个名为 actions 的子class 具有:[姓名、年份、数据]。因此,当我想获取所有流程时,我只想获取将年份设置为 2020 年的操作,而不是获取所有年份的所有操作。
教义上有没有办法做到这一点?
类似 SELECT 的流程 PROCESS.ACTIONS.YEAR 类似 2020(但在教义上)
抱歉不好解释,希望您能理解。
ps。我正在尝试在一个 twig 文件中打印所有进程,但我只想要最新的操作。
非常感谢
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-Query 中,您可能只说 SELECT DISTINCT process
等。而且我猜想在查询构建器变体中,您可能必须在 getQuery
.[= 之前添加 ->select('DISTINCT process')
15=]