删除preUpdate事件列表器中的实体

Dav*_*idW 4 symfony doctrine-orm

我有一个preUpdate实体的监听器,我在那里做一些计算,设置值等.

在那个监听器中,我想删除一些其他相关实体,但这似乎并没有被实体管理器刷新.我怎样才能实现这一目标?

gil*_*den 8

根据Doctrine2 文档:

在此事件中永远不允许对更新实体的关联进行更改,因为在刷新操作的此时,Doctrine无法保证正确处理引用完整性.

这意味着您不应该在preUpdate事件处理期间弄乱实体.我建议您使用实体管理器将逻辑移至服务层.写一个更新你的权利的具体方法,并在那里做所有复杂的东西.实体管理器的一个很好的例子是FOSUserBundleUserManager