多次添加和删除时的Doctrine触发事件

时间:2017-09-28 15:50:42

标签: symfony doctrine-orm doctrine subscribe

在文档中: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删除最后一个元素时,不会调用它。 postRemovepreRemove永远不会被称为。

我在_profiler中看到此查询调用了postUpdate

DELETE FROM instance_user WHERE instance_id = ? AND user_id = ?

但这不是:

DELETE FROM instance_user WHERE instance_id = ?

如何在多对多表中调用删除和添加操作?我可以触发任何添加和删除,这些删除不是删除集合中的所有元素。要完全运行代码,我需要在没有指定所有参数的情况下触发删除。

我发现了一些相关的问题:

0 个答案:

没有答案