我发现这个问题“感谢”我得到的一个异常:
Catchable Fatal Error: Argument 3 passed to
Doctrine\ORM\Event\PreUpdateEventArgs::__construct()
must be an array, null given, called in
/.../vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php on line 804
and defined in
/.../vendor/doctrine/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php line 28
我正在做一个需要特定逻辑的项目:
当order
实体中的字段book
被修改时,我需要更新books_order_modified_at
父实体中的bookstore
字段(这个字段可以让我知道书店中书籍的顺序是否改变了)。
我决定在事件侦听器中执行此操作,因为代码中有很多地方可能会改变书籍的顺序。
我没有找到从preUpdate
事件更新相关实体的任何方法,因此我在侦听器类中有一个私有字段,用于告诉postUpdate
事件更新相关bookstore
实体。
我的问题是,当我这样做时,实体的preUpdate
事件会被触发。
当我检查更改集时,它仅包含该字段,但前后具有相同的值。book
modified_at
如果有人有另一个想法如何解决这个问题 - 太好了。
如果没有 - 知道如何防止在preUpdate
事件中调用刷新时触发postUpdate
事件吗?