【发布时间】:2021-04-03 09:50:08
【问题描述】:
对于我的 Symfony 项目,我正在创建一个表单。
在这种形式中,用户可以选择Animal 实体,但前提是它是任何Group 实体的一部分。
它们使用many-to-many 关系链接。Group 实体有一个名为 animals 的属性,它是 Collection 的 Animal 实体。
由于我使用的是many-to-many 关系,因此创建了三个表:animal、group 和 group_animal。
现在,如果我要使用 SQL 查询,我会执行以下操作:
SELECT * FROM animal INNER JOIN group_animal ON group_animal.animal_id = animal.id
这样我就可以得到任何组中的所有动物。
问题是我正在使用 Symfony 的 FormTypes,我可以执行自定义查询的唯一方法是使用 query_builder 选项 (https://symfony.com/doc/current/reference/forms/types/entity.html#query-builder)
我尝试了很多方法,但就是无法将那个简单的(?)查询转换为 QueryBuilder。
我最接近的是:
$entityRepository->createQueryBuilder('animal')
->from('App:Group', 'group')
->join('group.animals', 'groupAnimal')
->where('groupAnimal.id = animal.id')
它有效,但现在我的“FROM”中有 2 个表格,感觉不对。
谁能帮我解决这个问题?
【问题讨论】:
-
您好!你没有关系的反面吗?喜欢 Animal 实体上的
groups属性? -
不,我没有,不过我可以添加它……那有可能吗?
标签: sql doctrine-orm doctrine