Php Symfony如何删除集合项

Php Symfony如何删除集合项,php,symfony,doctrine-orm,symfony3.x,Php,Symfony,Doctrine Orm,Symfony3.x,当我提交一个包含已删除元素的集合时,我的元素已正确删除,但我不明白Symfony如何删除元素 当我die()时脚本不会停止进入我的remover方法,因此我认为Symfony不会进入我的方法。 那么,Symfony如何在不调用我的移除方法的情况下移除我的元素呢?工作怎么样 应用程序上下文: 我从API中获得了一些数据,我只想从我的web界面添加或删除数据。因此,在添加/删除数据之后,我只想在API上发布新对象并删除相关行。我还可以比较预提交时的原始对象(从API获取)和提交后的新对象,以查看两者

当我提交一个包含已删除元素的集合时,我的元素已正确删除,但我不明白Symfony如何删除元素

当我
die()时脚本不会停止进入我的remover方法,因此我认为Symfony不会进入我的方法。
那么,Symfony如何在不调用我的移除方法的情况下移除我的元素呢?工作怎么样

应用程序上下文:

我从API中获得了一些数据,我只想从我的web界面添加或删除数据。因此,在添加/删除数据之后,我只想在API上发布新对象并删除相关行。我还可以比较预提交时的原始对象(从API获取)和提交后的新对象,以查看两者之间的差异。但是,如果存在调用对象移除器的方法,我不必使用第二种解决方案,我认为使用personnal移除器的第一种解决方案更好

我的去除器示例:

public function removeMyElement($myElement)
{
    personnalMethodTreatment($myElement);
    if (!$this->myElement->contains($myElement)) {
        return;
    }
    $this->myElement->removeElement($myElement);
}
谢谢你的帮助

解决方案 所以,谢谢大家的帮助。 我写这句话是为了帮助其他有同样问题的人

默认情况下,Symfony调用这个自己的删除程序。如果要调用自定义删除程序,请将
false
处的
by_reference
选项添加到您的收款单类型中。
by_reference:false

有关
的更多信息,请参见

总之,默认情况下,Symfony按以下顺序调用自定义方法:
Setter
Remover

因此,如果您有一个setter和一个remover,Symfony会更喜欢前者

为了解决我的问题,我遵循了先例说明,并在setter中加入了我的具体处理方法


希望能够帮助他人。

是否还有其他代码?应用程序的其余部分到底是如何工作的?我从API中获得了一些数据,我只想从我的web界面添加或删除数据。因此,在添加/删除数据之后,我只想在API上发布新对象并删除相关行。我还可以比较预提交时的原始对象(从API获取)和提交后的新对象,以查看两者之间的差异。但是,如果存在调用我对象的移除器的方法,我不必使用第二种解决方案,我认为使用personnal移除器的第一种解决方案更好。请通过编辑将所有澄清添加到问题中。完成了Nico,我已将澄清添加到问题中