2013-01-07 59 views
0

我從數據庫中得到一個數字(比如說,10),我想在if/else語句中使用它。請注意,我的變量可能等於0或爲空。樹枝和變量作爲數字

我的變量是item.getRate.getRate。我用這樣的模板展示它:

{{item.getRate.getRate |默認值( '0')}}

我試試做

{%如果item.getRate.getRate == 1%} {東西ENDIF%%}

if聲明

但它不起作用。

它運行在一個循環中,其中一個項目爲空getRate。這可能是問題嗎?如果是的話 - 我該如何避免它?

回答

1

我不得不檢查是否變量存在;)

{%如果item.getRate.getRate定義%} {%如果item.getRate.getRate == 1%}檢查=「檢查「{%endif%} {%endif%}

有點長,但有效。任何人有更好的主意?因爲它會很棒,現在它有點難看:))

+0

我不知道爲什麼你可以getRate.getRate兩次......但是在任何情況下:在樹枝中,通常不會在屬性/函數名稱中包含「get」前綴。所以你可以像這樣縮短它:'{%如果item.rate.rate被定義並且item.rate.rate == 1%}' - 沒什麼區別,但是它有幫助。 – lifo

4

你可以結合兩種測試,讓你的代碼易於閱讀。

{% if item.getRate.getRate is defined and item.getRate.getRate == 1 %} 
    checked="checked" 
{% endif %} 
0

假設有一個非零,非空值的getRate是必要的這一指示布爾值的,因爲你的例子表明:

{% if not(not(item.getRate.getRate)) %} 
    checked="checked" 
{% endif %}