php – 如何在Symfony中手动调度Doctrine / Kernel事件?
发布时间:2020-12-13 17:48:14 所属栏目:PHP教程 来源:网络整理
导读:我需要手动调度preRemove事件,因为我正在软删除一个实体,因此并没有真正删除它.但是我想在实际删除实体时触发相同的侦听器. 我可以将EventDispatcher(不期望LifecycleEventArgs)用于自定义事件吗?派遣香草事件的最佳方式是什么? 编辑: 感谢bosam回答,这是
我需要手动调度preRemove事件,因为我正在软删除一个实体,因此并没有真正删除它.但是我想在实际删除实体时触发相同的侦听器.
我可以将EventDispatcher(不期望LifecycleEventArgs)用于自定义事件吗?派遣香草事件的最佳方式是什么? 编辑: 感谢bosam回答,这是手动调度香草事件的方法: use DoctrineORMEventLifecycleEventArgs; use DoctrineORMEvents; $em = $this->getDoctrine()->getManager(); $eventManager = $em->getEventManager(); $eventManager->dispatchEvent(Events::preRemove,new LifecycleEventArgs($user,$em)); 解决方法
您需要从实体管理器实例调用getEventManager().
例如,对于Doctrine: $em = $this->getDoctrine()->getManager(); $eventManager = $em->getEventManager(); 然后,您可以使用$eventManager-> dispatchEvent($eventName,EventArgs $eventArgs = null)调度事件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |