Doctrine2:删除与额外数据的关系

时间:2012-07-15 03:19:14

标签: php doctrine-orm relationship

我有两个具有ManyToMany关系的表。我需要为这个关系添加一些额外的字段,所以我创建了一个与两个表中的每一个都具有ManyToOne关系的新实体。我遇到的问题是删除关系实体。我不想删除两个表中任何一个表中的条目,我只是想删除这个关系。我在这里描述了如何设置相关实体​​:

Doctrine2: Best way to handle many-to-many with extra columns in reference table

要删除关系,我尝试从其他两个表条目中删除相关元素,然后在相关实体中将这些表的引用设置为null。这似乎不起作用; Doctrine尝试执行查询以更新相关表中的条目,并将两个外键都设置为null。如果已删除对它的所有引用,我希望它删除相关表中的条目。

如果你想看到我的实体,或者这是否足够有意义,请告诉我。

1 个答案:

答案 0 :(得分:0)

实际上,删除充当“join-table”的实体可以解决问题。 什么都不应该级联。

假设你有像

这样的关系
User <- UserGroup -> Group

您只需要删除UserGroup实体。

如果您删除了UserGroup,并且您已正确设置cascade persist operations,那么UserGroup也会被删除。您还可以使用orphanRemoval来避免将UserGroup分配给不同的UserGroup元素。