我有一个教义实体(新闻),我在监听事件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检查,以确保您的代码仅针对特定实体运行。

09-20 01:21