在文档中:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
有定义的事件。其中:
preRemove - 在执行该实体的相应EntityManager删除操作之前,为给定实体发生preRemove事件。它不是为DQL DELETE语句调用的。
postRemove - 删除实体后,实体发生postRemove事件。它将在数据库删除操作后调用。它不是为DQL DELETE语句调用的。
但是这些事件不会在DQL DELETE语句中调用。
我从多个表中删除元素。在In集合中有两个元素,我删除了一个元素,然后调用事件postUpdate
,但是当我从集合postUpdate
删除最后一个元素时,不会调用它。 postRemove
和preRemove
永远不会被称为。
我在_profiler
中看到此查询调用了postUpdate
:
DELETE FROM instance_user WHERE instance_id = ? AND user_id = ?
但这不是:
DELETE FROM instance_user WHERE instance_id = ?
如何在多对多表中调用删除和添加操作?我可以触发任何添加和删除,这些删除不是删除集合中的所有元素。要完全运行代码,我需要在没有指定所有参数的情况下触发删除。
我发现了一些相关的问题: