2013-03-08 8 views
11

twig変数が存在する場合にのみ表示/使用するスマートな方法はありますか?twig:変数が存在する場合にのみ表示する

言ってやるが、私は構造持っている:

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

を、私はそれを使用します。私はそれが明確なために存在しない場合desc.paramsを省略する小枝を希望

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

エントリ。 ifステートメントを使用するよりもスマートな方法はありますか?

答えて

16

デフォルトの空白の文字列を渡すだけです。

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

このように定義されていない場合、この方法は空の文字列です。別の解決策は、あなたconfig.ymlファイルでfalseにstrict_variablesを設定することですhttp://twig.sensiolabs.org/doc/filters/default.html

+0

| default'を(なし'( '')')。 – fritzmg

4

:あなたはここでデフォルトフィルタの詳細を読むことができ

あなたはまた、単に `desc.paramsを使用することができます
twig: 
    ... 
    strict_variables: false 
+2

これにより、すべての変数の検証が無効になります。アプリの他の場所でそれが必要になることがあります。このオプションを使用する場合は注意してください。 – Chausser

+2

一度は十分ではないと私は再び注意します。 '{{val | default( '')}}'を使うのは簡単です。私は、Javascriptの遅れたバグが十分にあると思います。 –

関連する問題