gpt4 book ai didi

Symfony2 - 学说/orm 的听众

转载 作者:行者123 更新时间:2023-12-02 13:02:20 27 4
gpt4 key购买 nike

在 Symfony2/Doctrine 中插入记录后触发事件的最佳方法是什么?

最佳答案

首先,将服务注册为 Doctrine 事件监听器:

app/config.yml:

services:
foo.listener:
class: Vendor\FooBundle\BarClass
tags:
- { name: doctrine.event_listener, event: postPersist, method: onPostPersist }

然后在您的监听器类中,定义一个采用 Doctrine\ORM\Event\LifecycleEventArgs 参数的 onPostPersist 方法(或您在配置中命名该方法的任何名称):

public function onPostPersist(LifecycleEventArgs $eventArgs)
{
// do stuff with the entity here
}

请注意,您无法将 EntityManager 的实例传递给监听器类,因为 $eventArgs 包含对其的引用,这样做会引发 CircularReferenceException。

Doctrine 项目文档 here 。 Symfony 项目文档 here (已过时,但仅供引用)/

关于Symfony2 - 学说/orm 的听众,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6271948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com