2013-03-08 27 views
11

只有在存在時才顯示/使用小枝變量的智能方法?小枝:只有存在時才顯示變量

說,我已經有了一個結構:

'opt1': {'visible': false, 'bundle': 'XxxBundle', 'name': 'label1'}, 
'opt2': {'visible': true, 'bundle': 'YyyBundle', 'name': 'label2', 'params': '/par1'}, 

,我使用它:

<a href="{{path(desc.bundle ~ '_' ~ action ~ desc.params)}}"> 

我想樹枝,如果它不爲明顯存在省略desc.params條目。有沒有比使用if聲明更聰明的方法?

回答

16

您可以傳遞一個默認的空白字符串給它。

<a href="{{path(desc.bundle ~ '_' ~ action ~ desc.params|default(''))}}"> 

這種方式如果它沒有定義它只是一個空字符串。你可以閱讀更多關於過濾器的默認位置:http://twig.sensiolabs.org/doc/filters/default.html

+0

你也可以使用'desc.params | default'(不'('')')。 – fritzmg 2017-11-17 10:37:01

4

另一種解決方案是設置strict_variables爲false你config.yml文件:

twig: 
    ... 
    strict_variables: false 
+2

這將關閉所有變量的驗證,然後您可能仍然需要在應用程序的其他位置使用它。請注意,如果你使用這個選項。 – Chausser 2013-08-22 20:02:20

+2

如果一次還不夠,我會再次提防。使用'{{val | default('')}}'很容易。我認爲我們有足夠的Javascript錯誤。 – 2016-02-18 13:01:40

相關問題