我有一个 Doctrine 实体(新闻),我监听事件 prePersist
。为此,我使用方法 prePersist
的事件监听器。
我的 services.yml
看起来像这样:
listener.entity.news:
class: A\BBundle\Listeners\Entity\NewsListener
tags:
- { name: doctrine.event_listener, event: prePersist }
这很好,一切正常。但是文档指出,当 persist()
被调用时,会产生一个 prePersist
事件。然后,正如我的配置所述,NewsListener
将捕获它并执行一些代码。在捕获事件的方法中,我应该检查事件是否来自 News
实体。这是我想知道的地方,是否可以告诉 Symfony 监听特定实体的 prePersist 事件,然后将其传递给我的监听器?
目前(据我所知),每当 doctrine 产生 prePersist
事件时,所有监听器都会收到通知。说出哪些监听器应该监听哪些事件生成器(即使这应该是可选的)而不是通知所有人并让他们过滤他们需要的那些不是更好吗?
希望我的问题问对了。
最佳答案
这似乎从 Doctrine 2.4 开始得到支持:
关于php - Symfony 中的 Doctrine 2 : Listening for events from a particular Entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232020/