我有一个教义实体(新闻),我在监听事件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事件,然后将其传递给我的监听器?目前(据我了解),每当教义产生
prePersist
事件时,就会通知所有监听器。最好说出哪些监听器应该监听哪些事件生成器,即使该监听器是可选的,而不是通知所有并让他们过滤所需的信息呢?我希望我正确地问了我的问题。
最佳答案
不,不可能。您的监听器将为每个持久存在的实体触发。由您决定是否在事件监听器中进行instanceof
检查,以确保您的代码仅针对特定实体运行。