2016-08-02 85 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}) %} 
相關問題