Doctrine LifecycleEventArgs返回Gedmo \ Loggable \ Entity \ LogEntry

时间:2017-06-08 08:46:29

标签: php entity-framework symfony doctrine-orm listener

我正在尝试在symfony项目中使用doctrine事件, 在symfony doc之后我有这个代码

public function postPersist(LifecycleEventArgs $args)
{
    $entity = $args->getEntity();


    if (!$entity instanceof Rubrique) {
        return;
    }

    $entityManager = $args->getEntityManager();
    // do some stuff
}

问题是$entity不是预期的对象Rubrique,而Gedmo\Loggable\Entity\LogEntry的实例可能是因为RubriqueLoggable。如何根据需要访问我的实体进行操作? 感谢

1 个答案:

答案 0 :(得分:1)

此事件监听器是"generic" one而不是doctrine entity listener

这意味着针对每个持久化的实体都会引发事件:如果您在RubriqueLogEntry之间存在关联,那么您可能只检查"第一"他们是" postPersisted"。

如果您只需要针对该类实体的特定侦听器,请考虑使用doctrine实体侦听器(上面链接)。

此外请记住" generic"监听器将监听(或将被订阅)每个实体的事件(因此,基本上,它可以被调用很多次),而不是教条实体监听器。