我正在尝试在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
的实例可能是因为Rubrique
是Loggable
。如何根据需要访问我的实体进行操作?
感谢
答案 0 :(得分:1)
此事件监听器是"generic" one而不是doctrine entity listener
这意味着针对每个持久化的实体都会引发事件:如果您在Rubrique
和LogEntry
之间存在关联,那么您可能只检查"第一"他们是" postPersisted"。
如果您只需要针对该类实体的特定侦听器,请考虑使用doctrine实体侦听器(上面链接)。
此外请记住" generic"监听器将监听(或将被订阅)每个实体的事件(因此,基本上,它可以被调用很多次),而不是教条实体监听器。