2016-08-02 83 views
3

Twig决定不允许通过set设置数组和对象属性的值,我对此感到非常困惑。树枝 - 为什么它不允许我们设置对象/数组值?

例如,下面的代码就会因错误:

{% set entry.depth = 1 %}

将导致错误:

Unexpected token "punctuation" of value "." ("end of statement block" expected)

而且通过以下方式也将错误(我知道树枝不喜欢使用):

{% set entry['depth'] = 1 %}

因此,这意味着我们无法更改对象和数组的属性。我很坦率地发现这个奇怪的。

有人可以解释这背后的决定吗?也许如果我得到一个技术上的原因,为什么它不可能,这可能会让它变得不那么困惑。

编辑:感谢您的解决方案,我更多的推理背后的事实,你必须使用合并,而不是只是简单地能够覆盖变量。

回答

5

枝条在这方面有点奇怪。您需要为此使用merge过滤器。

{% set entry = entry|merge({'depth': 1}) %} 
相关问题