我有2个具有多对多关系的学说实体。当我编辑第一个实体时,我希望能够选择具有第二个实体的数据的复选框,以便为特定条目建立连接。
它在创建新条目(使用数组集合)时工作正常,但是当我想编辑条目时 - 它会添加我选择的条目而不删除先前的选择(取消选中)。
哪种方式是正确的方法,以及如何做到这一点?
我没有使用Symfony,只是Doctrine。
答案 0 :(得分:1)
Doctrine使得与多对多关联的合作变得非常容易。您的关联存储在ArrayCollection类中,该类具有一些可以帮助您的方法。首先,检查ArrayCollection here (Doctrine API - ArrayCollection)
的所有可用方法在您的情况下,我将使用此方法:在ArrayCollection上使用clear方法,该方法包含与第二个实体的关系,并使用checked元素再次填充它。在此之后,在entitymanager上调用flush方法。
另一种方法是过滤您的集合(使用过滤器方法)以获取仅包含已检查元素的全新ArrayCollection。与第一种方法一样,将此新集合与关系的ArrayCollection关联,并在entitymanager上调用flush方法。