枝条:如果有多种条件

如果陈述,似乎我有一个小树枝的问题。

{%if fields | length > 0 || trans_fields | length > 0 -%} 

错误是:

 Unexpected token "punctuation" of value "|" ("name" expected) in 

我不明白为什么这不起作用,就像是所有的pipe子都丢了枝条。

我试过这个:

 {% set count1 = fields | length %} {% set count2 = trans_fields | length %} {%if count1 > 0 || count2 > 0 -%} 

但如果也失败了。

然后试试这个:

 {% set count1 = fields | length > 0 %} {% set count2 = trans_fields | length > 0 %} {%if count1 || count2 -%} 

而且它仍然不起作用,每次都有同样的错误

所以…这引出了一个非常简单的问题:Twig是否支持多个条件IF?

如果我没有记错Twig不支持||&&操作符,但分别需要or和。 我也会用括号来更清楚地表示这两个陈述,尽pipe这在技术上并不是一个要求。

 {%if ( fields | length > 0 ) or ( trans_fields | length > 0 ) %} 

expression式

 Expressions can be used in {% blocks %} and ${ expressions }. Operator Description == Does the left expression equal the right expression? + Convert both arguments into a number and add them. - Convert both arguments into a number and substract them. * Convert both arguments into a number and multiply them. / Convert both arguments into a number and divide them. % Convert both arguments into a number and calculate the rest of the integer division. ~ Convert both arguments into a string and concatenate them. or True if the left or the right expression is true. and True if the left and the right expression is true. not Negate the expression. 

对于更复杂的操作,最好用圆括号包装单个expression式以避免混淆:

 {% if (foo and bar) or (fizz and (foo + bar == 3)) %}