加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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)调度事件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读