我正在尝试将 KnpMenuBundle 与 Symfony2 和 TWIG 一起使用。
在我的树枝模板中,菜单的名称如下:
<div id="before"></div>
{% set myMenu = knp_menu_get('MyBundle:Builder:myMenu') %}
{#{{dump(seeMenu)}}#}
{{ knp_menu_render(seeMenu) }}
<div id="after"></div>
当我尝试显示相应的页面时,它返回一个 500 错误,没有更多详细信息。渲染停止在该{{ knp_menu_render(seeMenu) }}
行,当我删除或注释该行时错误消失。
由于这个错误,Apache 崩溃了,我必须在每次渲染测试失败后重新启动它。
我的 Builder 类似乎还可以,因为它dump(seeMenu)
向我展示了我的期望。
我没有在我的 config.yml 中添加任何关于 knp 的内容(因为文档说它是可选的)。反正我试过了,同样的问题。
我尝试通过 MopaBootstrapBundle ( {{ mopa_bootstrap_menu(seeMenu) }}
) 渲染菜单,同样的问题。
Firebug 没有提供有关 500 错误的更多信息,并且 dev.log 文件也没有更多帮助。
[编辑] Apache 日志说:
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 130968 bytes) in /var/www/myproject/app/cache/dev/classes.php on line 3148
这解释了 Apache 的崩溃。我试图增加内存(ini_set('memory_limit', '256M');
in app_dev.php
)但问题仍然存在,这意味着某处存在无限循环......
[EDIT2] 经过一番研究,问题似乎来自文件Environment.php的第 348 行:dump(new $cls($this));
生成“内存耗尽”错误。
我不知道为什么以及在哪里进一步寻找。我在另一个项目中使用相同版本的 TWIG(1.20)和相同版本的 knpMenuBundle(2.0),它工作正常......
[EDIT3] 我仍然无法使这个 KnpMenuBundle 工作:/ 我试图重新安装整个项目,但它没有改变任何东西。我完全被卡住了,我不知道现在该怎么办..