0

使用 Symfony2、Doctrine2 和 MySQL,我遇到了一些麻烦。

想象一些简单的理论生成实体,数据库中有 14 个元素,必须在某个 myPage 文档中列出。

我执行来自浏览器的请求,并进入 myPage 控制器方法。该方法从头到尾执行(我在日志中看到了这一点),获取每个元素并准备将它们返回到数组中。最后,控制器正确地生成响应并返回它。我在日志中写了那个响应对象,看起来很完美。

但是,令人惊讶的是!我在浏览器中得到的只是一个空白页面:

<html>
    <head></head>
    <body></body>
</html>

令人难以置信的是,如果我删除任何要在浏览器中获取和列出的元素,那么我列出的不是 14 个,而是 13 个,页面只是“栩栩如生”并且被完美浏览。请注意,在这两种情况下,每个日志都显示完全相同。控制器从 A 到 Z 执行,响应正确形成并平等返回。

服务器和浏览器缓存都被清理了几十次。


编辑(一些实验):删除所有变量并只编写一个基本的 HTML 页面,它可以正确浏览:

<html>
    <head></head>
    <body>Hello world!</body>
</html>

插入trans-endtrans标签,它的工作原理。这浏览页面:

<html>
    <head></head>
    <body>
        Hello world! One fine translation: {% trans %}one.fine.translation{% endtrans %}
    </body>
</html>

插入第二个trans-endtrans标签,空白页!!这给出了一个空白页:

<html>
    <head></head>
    <body>
        Hello world!
        One fine translation: {% trans %}one.fine.translation{% endtrans %}
        Second fine translation: {% trans %}second.fine.translation{% endtrans %}
    </body>
</html>

插入一个简单的树枝变量,空白页!!这给出了一个空白页:

<html>
    <head></head>
    <body>
        Hello world!
        {{ my_variable }}
    </body>
</html>

同样,如果我只删除必须在页面中列出的那些寄存器,它总是有效的。


编辑2(更多细节):

每当我清除缓存时,它似乎都可以工作一次。但只有一次!IE:

  1. 我请求页面
  2. 我得到了著名的空白页
  3. 我清除缓存 ( rm -rf app/cache)
  4. 我重新加载页面
  5. 页面浏览正常!!!
  6. 我重新加载
  7. 我再次得到了空白,所以我会做任何额外的时间来重新加载页面。

所以...与 Symfony 缓存有什么关系????


我并不真正相信有一个超级准确的答案来解决我的问题。我只是想知道你们中的任何读者是否曾经遇到过一个如此奇怪的问题,以及您是否在教义关系中看到任何可能导致它的东西。

检查其他日志的其他一些方法也会有所帮助,我可以在其中找到导致这种混乱的原因。Apache.error.log 没有显示太多。有教义日志吗?我真的不知道在哪里可以找到我的解决方案。

或任何其他配置或与 Symfony2 缓存有关的任何事情?

4

1 回答 1

0

好的。

我终于让它工作了。

肯定是内存有问题。我认为 Doctrine2 有时不能很好地管理内存。

这真的很棘手,因为我在测试环境中遇到了错误,在任何日志、调试栏或屏幕上都没有显示错误。

一旦我在本地重现了相同的错误,我很快就看到了发生错误的确切代码行。

因此,孩子们,当您有一个完全空白的页面时,请考虑您可能正在解决一些内存问题并设法在某些环境中重现错误,如果您知道日志记录工作正常。

于 2013-07-15T20:37:24.100 回答