如果您看到我之前的问题,这在某种程度上与它相关联,但却是一个新问题。所以我有一个实体,并且有一个与之相关联的监听器。在我的 createAction 中,我创建了我的对象,然后将其持久刷新到我的数据库中。在我的监听器中,我设置了一个 postFlush 函数
public function postFlush(PostFlushEventArgs $args)
{
$em = $args->getEntityManager();
foreach ($em->getUnitOfWork()->getScheduledEntityDeletions() as $entity) {
if ($entity instanceof AvailabilityAlert) {
var_dump("TEST");
$this->api_service->addFlightsAction($entity);
}
}
}
我在这个函数中试图做的是获取刚刚刷新的实体。我已经尝试了 getUnitsOfWork 的所有不同操作,例如getScheduledEntityDeletions,但对于它们中的任何一个,我都无法进入 var_dump 发生的位置。
我将如何在这个 postFlush 函数中获取刷新的实体?
最佳答案
根据此处的 Doctrine2 文档:http://doctrine-orm.readthedocs.org/en/latest/reference/events.html您不能在 PostFlush
事件中调用刷新的实体。
但是您可以拆分您的逻辑:使用 OnFlush
事件获取这些实体,然后在刷新成功时将其传递给 PostFlush
。
关于Symfony2/Doctrine - postFlush,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589633/