我简单地为模板(index.html.twig)添加:
{{ dump(product) }}
我有错误:
The function "dump" does not exist in AcmeStoreBundle:Default:index.html.twig at line 2
为什么此功能未启用,我该如何启用?
您需要配置调试扩展:
# app/config/config.yml
services:
acme_hello.twig.extension.debug:
class: Twig_Extension_Debug
tags:
- { name: 'twig.extension' }
根据上面提到的链接,Twig 调试默认设置为在运行 Twig 1.16+ 的 Symfony 2.5+ 中工作,并且不需要自定义服务定义。有关更多详细信息,请参阅此答案。
Symfony 2.7+ 更新:
DebugBundle 允许将组件更好地集成到 Symfony 全栈框架中。它在 Symfony 标准版的开发和测试环境中默认启用。
旧答案:
我想建议一个非本地解决方案。您将需要第三方捆绑包,但最终结果会很棒!
版本改进dump
:
ldd()
,这是经典的“转储死”的别名php app/console ladybug:dump "Symfony\Component\HttpFoundation\Request"
)这里的链接:
当您像@meze 所说的那样配置它时,您可以显示所有自定义变量:
<h1>Variables passed to the view:</h1>
{% for key, value in _context %}
{% if key starts with '_' %}
{% else %}
<pre style="background: #eee">{{ key }}</pre>
{{ dump(value) }}
{% endif %}
{% endfor %}
您可以使用我的简单插件来方便地检查您的变量: