对象变量不会显示在树枝模板中

时间:2016-01-24 21:22:11

标签: php twig

使用Twig(v1.23.3)时发现这种奇怪的行为

在一个模板中我有一个对象数组:我使用dump函数来显示它,如下所示:

SERLIBPATH=../../lib
SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1

转储输出符合预期:

<pre align="left" style="text-align: left; font-size: 80%">
{{ dump(current_balances) }}
</pre>
{% for key, val in current_balances %}
    {{ val.name }} : {{ val.balance | number_format(2, '.', ' ') }} €<br>
{% else %}
    Aucun solde trouvé.
{% endfor %}

但是for循环的输出不正确。显示{{val.name}},但{{val.balance}}为空。

我把这种循环丢弃了数百次 - 这段代码只是从一个有效的模板中剪切并粘贴。

事件更奇怪的是,如果我反转对象中的变量的顺序(因为它很重要),在名称之前放置余额,然后显示余额,而不是名称!

我真的不知道在哪里看这个。当然,我的模板是用控制器调用模型来呈现的,所以这只是代码的一小部分。

我认为我发现了一个类似Variables not replaced in Twig template的错误,但很难说。

1 个答案:

答案 0 :(得分:0)

这不是一个错误!我终于在Twig中启用了缓存并查看了生成的代码。你猜怎么着 ?一些不可打印的char已经找到了靠近val.balance的方法。 A&#34; cat -A&#34;在模板文件上显示:

{{ val.name }} : {{M-BM- val.balance }} M-bM-^BM-,<br>$

在编译模板中生成此内容:

$this->getAttribute((isset($context[" val"]) ? $context[" val"] : null)

注意到val之前的空间?

用这个丢了一个小时。源问题是Debian中过时的frenck键映射....

相关问题