有没有办法为Doctrine事件监听器指定实体?

时间:2012-01-02 14:08:28

标签: symfony doctrine-orm

我正在阅读:http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html

似乎使用Doctrine事件监听器这种方式有点浪费,因为我不能只定义要监听的特定实体,而必须在监听器类中检查实体的类。这似乎是一种浪费。有没有办法表明要听的特定实体?

2 个答案:

答案 0 :(得分:3)

没有。您需要将此逻辑包含在侦听器的顶部。这通常是instanceof检查:

public function prePersist($eventArgs)
{
    // i.e. using the MongoDB ODM
    $doc = $eventArgs->getDocument();
    if (!$doc instanceof MyModel) {
        return;
    }
}

答案 1 :(得分:1)

由于Doctrine 2.4可以使用Entity listeners,因此仅针对特定实体类型调用它们。