【发布时间】:2014-10-01 01:02:58
【问题描述】:
目标
最大的目标是打印出 twig 表单模板 /views/Form/fields.html.twig 中可用的变量,以便我可以找出哪些变量可用,特别是在{% block widget_attributes %} 基于字段类型(据推测存在但由于某种原因不可访问,并且警告 other suggestions 获取类型)。
我只想查看所有可用的变量......以及它们所持有的值。简单吧?
迷路
这让我陷入了很多困境,一些有用的文章指出了如何循环当前上下文的变量:
{% block widget_attributes %}
<ol>
{% for key, value in _context %}
<li>{{ key }} :
{% if value is not iterable%}
{{ value }}
{% else %}
{{ dump(value) }}
{% endif %}
</li>
{% endfor %}
</ol>
{% set attr = attr|merge({'class': (attr.class|default('') ~ ' form-control')|trim}) %}
{{ parent() }}
{% endblock widget_attributes %}
但这不会打印出type,如果它不可迭代,它实际上不会转储值。它杀死 symfony 没有任何错误。因此,出于多种原因,让调试工作至关重要。
启用转储
启用转储的所有建议均无效。 Twig's website 特别没有帮助,因为它没有提供如何或在何处加载 $twig = new Twig_Environment 的上下文(最新版本在 twig 中是 1.5 而在 symfony 中是 1.16 是怎么回事?)。 Symfony 说它将是enabled by default。但它不起作用。
app.php(加载内核已启用调试):
$kernel = new AppKernel('dev', true);
这是我的 config.yml 中的内容:
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
在 config_dev.yml 中启用的 other suggestions 也不起作用:
imports:
- { resource: config.yml }
# this is from one of the suggestions, but it doesn't work and may be an older method
services:
twig.extension.debug:
class: Twig_Extension_Debug
tags: [{ name: 'twig.extension' }]
仍然迷路
就像 Symfony 中的许多东西一样,它功能强大且令人敬畏,直到它无法工作,然后没有关于如何使其工作的文档。任何帮助将不胜感激。
我正在运行 Symfony 2.5,作曲家更新到 Twig 1.16。
【问题讨论】:
-
检查此问题中接受的答案:Link
-
@waldek_c 感谢您的链接。这些答案都不起作用,但在此过程中我以某种方式修复了它(请参阅下面的答案)。
-
然而,更大的问题仍然存在,你不能
dump(_context)以白页告终。也许当您转储递归对象时会发生这种情况?所以我不知道如何实际查看 twig 中可用的所有变量......回到第一格。