for*_*erg 2 php symfony doctrine-orm
我之前在两种环境中都在本地计算机和目标主机上测试了Symfony的Web应用程序:prod和dev - 两者都运行良好.所以我在我的本地计算机上完成了一英里的石头,仍然只在dev上测试.一切正常.然而 - Doctrine似乎现在还没有开始生产 - 我不知道为什么以及它如何停止工作.
这就是我所看到的 - 这段代码(来自DefaultController.php)正在研究prod和dev:
$tags = $this->getDoctrine()
->getRepository("MyWebBundle:Tag");
Run Code Online (Sandbox Code Playgroud)
但是这个(一行更多)仅适用于dev,但不是prod:
$tags = $this->getDoctrine()
->getRepository("MyWebBundle:Tag")
->find(1);
Run Code Online (Sandbox Code Playgroud)
在prod中,最后一行导致网页"死亡".毫无疑问发生了错误,但我在日志中没有任何消息,当然在prod env中Symfony是沉默的.我不知道如何处理这个问题......最奇怪的是,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;
Run Code Online (Sandbox Code Playgroud)
有趣的是Symfony2并不详细...当我从Tag.php中删除它时,我的webapp工作正常.如果我重新输入这个文件,它不会...
更新:经过进一步的研究,我可以看到实际上所有的关系都是有问题的(刺激,而不是开发).我以上述方式为数据库编写了额外的"人工"(用于测试目的)查询,并且都给出了两种效果之一: 当表位于层次依赖之上时,一切正常(让我们称之为A类型) *当表时有关系,Symfony只是停止工作,没有任何消息(让我们称之为B型...*
我还尝试用空表进行测试并完成测试."B型"表中有两种情况: 当为空时,它有效 *存储数据时(有关系),它不起作用*
在你的app.php
变化中
$kernel = new AppKernel('prod', false);
Run Code Online (Sandbox Code Playgroud)
至
$kernel = new AppKernel('prod', true);
Run Code Online (Sandbox Code Playgroud)
这将使用prod环境启用您的应用程序并启用调试
归档时间: |
|
查看次数: |
1557 次 |
最近记录: |