0

我需要将我的应用程序与其数据库结合起来。为此,我生成了一个带有doctrine:generate:entity. 它生成了一个带有适当注释的实体以进行映射。我还习惯于doctrine:schema:update --force在数据库服务器上实际创建模式,我可以确认它已使用 phpMyAdmin 完成。

在我的控制器中,我试图简单地插入一行,如下所示:

public function testAction() {
    $file = new File();
    $file->setTest('A Foo Bar');

    $em = $this->getDoctrine()->getManager();
    $em->persist($file);
    $em->flush();

    return new JsonResponse(array('foo' => 'bar'));
}

该实体只有一个名为test字符串且长度为 255 的字段。当我通过应用程序中的 AJAX 请求请求此 URL 时,它会返回一个非常无信息的 500 内部服务器错误:

哎呀!发生错误

服务器返回“500 内部服务器错误”。

东西坏了。请通过 [email] 给我们发送电子邮件,让我们知道发生此错误时您在做什么。我们会尽快修复它。给您造成的任何不便,请原谅。

PHP 错误日志也没有任何错误信息。如果我删除数据库操作的东西,这个控制器操作确实有效。该应用程序也在开发环境中运行。

有什么方法可以让我获得更具描述性的错误消息,至少告诉我出了什么问题?

4

2 回答 2

0

如果这里有人遇到这个问题并且丢失了,我的原因是我已经指定了一个新的@ORM\ManyToOne 关系并且一直存在而不是合并实体。

这在过去返回了一个有效错误,但在这种情况下,php 脚本根本没有处理它。

于 2018-02-02T03:57:14.047 回答
0

这是您在生产中获得的默认错误页面。您可以自定义它 - http://symfony.com/doc/current/cookbook/controller/error_pages.html

您可以捕获并阅读创建错误ExceptionListener- http://symfony.com/doc/current/cookbook/event_dispatcher/event_listener.html

您也可以切换到开发环境以显示错误文本和日志。

如果您只需要开发日志但需要生产环境,则可以将monolog部分的内容复制app/config/config_dev.ymlapp/config/config_prod.yml.

于 2016-04-24T09:50:53.247 回答