2015-12-23 61 views
2

我想在枝條中使用簡單的if語句。但它似乎沒有正常工作。變量emailActivation肯定會正確加載到Twig中,正如從輸出的第一行可以看到的那樣。枝條IF語句不起作用

然而if語句的行爲非常奇怪 - 例如它的工作原理,當變量是假的,對1(情況下2),但沒有測試預期當它是假的,對「假」(情況下進行測試1)。

相反,當變量爲真時,當變量針對「真」(殼體3),但如果測試語句的工作不是當針對1(殼體4)進行測試。

我只顯示出對1的測試作爲一種變通方法,我試圖,真的我覺得問題在於,(情況1)。 (情況5)和(情況4)建議數字被評估爲布爾值。

我也認爲這可能是一個與緩存有關的問題,但據我所知,我已將Twig設置爲不使用緩存。即使Twig緩存該問題仍會在第一次加載頁面和瀏覽器重新啓動時發生。我已經在IE和Firefox上嘗試過了,但我不認爲瀏覽器與Twig本身存在的問題真的很相關,據我所知。

在此先感謝您的幫助!

案例1 emailActivation =假

枝條代碼

{{ emailActivation }} 
{% if emailActivation == true %} 
    feature disabled 
{% else %} 
    other content 
{% endif %} 

輸出

禁用特徵

案例2 emailActivation =假

枝條代碼

{{ emailActivation }} 
{% if emailActivation == 1 %} 
    feature disabled 
{% else %} 
    other content 
{% endif %} 

輸出

其他內容

案例3 emailActivation =真

枝條代碼

{{ emailActivation }} 
{% if emailActivation == true %} 
    feature disabled 
{% else %} 
    other content 
{% endif %} 

輸出

特徵禁用

案例4 emailActivation =真

枝條代碼

{{ emailActivation }} 
{% if emailActivation == 1 %} 
    feature disabled 
{% else %} 
    other content 
{% endif %} 

輸出

其他內容

案例5 emailActivation =真

枝條碼

{{ emailActivation }} 
{% if emailActivation == 0 %} 
    feature disabled 
{% else %} 
    other content 
{% endif %} 

輸出
禁用

+0

emailActivation是一個字符串?因爲我在{{emailActivation}}的結果中看到了錯誤或真實的結果,[第一次看到這個]] – pbenard

+0

@ Put12co22mer2這很有道理!我無法測試,以確認atm,但明天。情況4和5有不同的結果很奇怪,儘管它是一個字符串。謝謝 – Gabi

+0

是的這只是一個思維而不是答案,但仍然奇怪,我不明白爲什麼情況5 ... – pbenard

回答

1

一個細節,以使===認爲emailActivation可能是一個字符串真正
功能。

{{ emailActivation }}輸出是falsetrue,但我認爲,一個布爾返回別的東西(〜什麼或1〜)

將條件測試爲字符串的事實應該可以解決問題。

的方法之一將是(對於一個簡單的字符串,而不是一個大的內容)

{{ emailActivation }} 
{{ (emailActivation == 'true') ? 'feature disabled' : 'other content' }} 

友好