Symfony2/Doctrine - postFlush

Nic*_*ice 3 symfony doctrine-orm

如果您看到我之前的问题,那么这与它有某种联系,但却是一个新问题。所以我有一个实体,并且有一个与之链接的侦听器。在我的 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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这个函数中试图做的是获取刚刚刷新的实体。我已经尝试了 getUnitsOfWork 的所有不同操作,例如 getScheduledEntityDeletions,但对于其中任何一个,我都无法进入 var_dump 发生的位置。

我将如何在这个 postFlush 函数中获取刷新的实体?

Pet*_*ore 5

根据此处的 Doctrine2 文档:http://doctrine-orm.readthedocs.org/en/latest/reference/events.html您无法在PostFlush事件上调用刷新的实体。

但是,您可以拆分逻辑:使用OnFlush事件来获取这些实体,然后PostFlush在刷新成功时将其传递给 。

  • 如何将“onFlush”监听器中收集的数据传递给“postFlush”监听器? (3认同)