Есть ли способ указать Entity для прослушивателя событий Doctrine? - PullRequest
1 голос
/ 02 января 2012

Я читал: http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html

Похоже, что использование прослушивателей событий Doctrine таким способом немного расточительно, потому что я не могу просто определить конкретную сущность для прослушивания и должен проверить класс сущности в классе слушателя. Это кажется пустой тратой. Есть ли способ указать конкретную сущность для прослушивания?

Ответы [ 2 ]

3 голосов
/ 02 января 2012

Нет. Вы должны включить эту логику в верхней части вашего слушателя. Обычно это проверка instanceof:

public function prePersist($eventArgs)
{
    // i.e. using the MongoDB ODM
    $doc = $eventArgs->getDocument();
    if (!$doc instanceof MyModel) {
        return;
    }
}
1 голос
/ 03 августа 2016

Поскольку в Doctrine 2.4 вы можете использовать Слушатели сущностей , они вызываются только для определенного типа сущности.

...