[Doctrine2]刷新失败但unitOfWork正确处理

时间:2018-03-23 09:08:06

标签: symfony doctrine-orm

我希望这个问题还没有回答,但我找不到。

我在symfony(3.4)项目中使用doctrine2。我使用persist和flush这么多次没有任何问题通过容器,在一小段代码我有一些麻烦我无法弄清楚...

在我的控制器中,我有一个这样的代码:

            $obj = $this->container->get('some.service')->initiateObj(some_params);
            $this->getManager()->persist($obj);
            $this->getManager()->flush();
// I can't dump here

我的对象是从我的第一个代码行设置并正确返回的。 持久功能完美运行。如果我在持久化后转储我的对象,则该对象的doctrine事件设置权限设置。

冲洗后我的浏览器出现错误500(铬)。

我认为问题出在pre / postFlush事件中,但是当在doctrine EntityManager代码中转储时,unitOfWork->提交函数正常工作而没有错误,我可以在它之后转储。

但是在冲洗后我不能在控制器中转储......

这里是来自教义代码的EntityManager:

public function flush($entity = null)
{
    $this->errorIfClosed();

    $this->unitOfWork->commit($entity);
    // I can dump here
}

我没有任何symfony / doctrine日志,也没有apache2日志。

是否有人知道在提交函数之后错误可以抛出的位置?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我上周在我的代码中找到了我的解决方案。

这是在postPersist事件中。但我真的不明白为什么symfony,doctrine ...引发任何异常,只是一个错误500的空白屏幕。

感谢您的帮助。