我之前在两个环境中测试了Symfony的本地计算机和目标主机上的Web应用程序:prod和dev - 两者都运行良好。所以我在我的本地计算机上完成了一英里的石头,仍然只在dev上测试。一切正常。然而 - Doctrine现在似乎没有生产 - 我不知道为什么以及它如何停止工作。
这就是我所看到的 - 这段代码(来自DefaultController.php)正在研究prod和dev:
$tags = $this->getDoctrine()
->getRepository("MyWebBundle:Tag");
但是这个(更多一行)只在dev上工作,但不是prod:
$tags = $this->getDoctrine()
->getRepository("MyWebBundle:Tag")
->find(1);
在prod中,最后一行会导致网页“死亡”。毫无疑问发生了错误,但我在日志中没有任何消息,当然在prod env中Symfony是沉默的。我不知道如何解决这个问题......最奇怪的是,prod之前的工作正常。
更新: 好的,我追踪了代码的一部分,这些代码在工作和不工作方面有所不同(但在prod中,在开发中始终有效)。数据库中存在一些关系(Tag Many-to-One to Category)。以下是Entity / Tag.php中的这部分代码:
/**
* @ORM\ManyToOne(targetEntity="Category")
* @ORM\JoinColumn(name="id_category", referencedColumnName="id_category", nullable=true)
*/
protected $category;
有趣的是Symfony2并不详细... 当我从Tag.php中删除它时,我的webapp工作。如果我将其重新输入此文件,则不会......
更新: 经过进一步的研究,我可以看到实际上所有的关系都是有问题的(刺激,而不是开发)。我以上述方式为数据库编写了额外的“人工”(用于测试目的)查询,并且都给出了两种效果之一: 当表位于层次依赖关系之上时,一切正常(让我们称之为A类型) * 当表有关系时,Symfony只是在没有任何消息的情况下停止工作(我们称之为B类型...... *
我还尝试用空表进行测试并完成测试。 “B型”表中有两个案例: 空时,可以正常使用 * 存储数据时(带关系),它不起作用 *
答案 0 :(得分:5)
在app.php
更改
$kernel = new AppKernel('prod', false);
到
$kernel = new AppKernel('prod', true);
这将使用prod环境启用您的应用程序并启用调试