学说对生产有问题,但不是开发

时间:2012-09-05 16:32:31

标签: php symfony doctrine-orm

我之前在两个环境中测试了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型”表中有两个案例: 空时,可以正常使用 * 存储数据时(带关系),它不起作用 *

1 个答案:

答案 0 :(得分:5)

app.php更改

$kernel = new AppKernel('prod', false);

$kernel = new AppKernel('prod', true);

这将使用prod环境启用您的应用程序并启用调试