【问题标题】:[Doctrine2]Flush fail but unitOfWork process correctly[Doctrine2] 刷新失败但 unitOfWork 进程正确
【发布时间】:2018-03-23 09:08:06
【问题描述】:

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

我在我的 symfony (3.4) 项目中使用了学说 2。我在容器中多次使用持久化和刷新,没有任何问题,在一小段代码中我遇到了一些我无法弄清楚的问题......

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

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

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

刷新后,我的浏览器(铬)出现错误 500。

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

但我不能在刷新后转储到我的控制器中......

这里是来自学说代码的 EntityManager:

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

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

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

有没有人知道在提交函数之后哪里会抛出错误?

非常感谢您的帮助!

【问题讨论】:

  • 你有堆栈跟踪吗?
  • 转到调试面板:)
  • 我没有引发任何异常,我有一个错误 500,很遗憾我没有调试工具栏/面板。
  • 你使用的是开发环境吗?
  • 是的,当然!问题显然出在我的代码中,我尝试实际解决它。但我不明白为什么我没有任何堆栈跟踪、日志或异常抛出。我的浏览器中只有一条 500 错误消息。

标签: symfony doctrine-orm


【解决方案1】:

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

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

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    相关资源
    最近更新 更多