나뭇 가지 if 문에 문제가있는 것 같습니다.
{%if fields | length > 0 || trans_fields | length > 0 -%}
오류는 다음과 같습니다.
Unexpected token "punctuation" of value "|" ("name" expected) in
왜 이것이 작동하지 않는지 이해할 수 없습니다. 마치 모든 파이프에서 나뭇 가지가 사라진 것과 같습니다.
나는 이것을 시도했다 :
{% set count1 = fields | length %}
{% set count2 = trans_fields | length %}
{%if count1 > 0 || count2 > 0 -%}
그러나 if 또한 실패합니다.
그런 다음 이것을 시도했습니다.
{% set count1 = fields | length > 0 %}
{% set count2 = trans_fields | length > 0 %}
{%if count1 || count2 -%}
그리고 여전히 작동하지 않으며 매번 같은 오류가 발생합니다 …
그래서 … 그건 정말 간단한 질문으로 이어집니다. Twig는 여러 조건 IF를 지원합니까?
답변
내가 올바르게 기억 나뭇 가지 지원하지 않습니다 ||
및 &&
운영자 만이 필요 or
하고 and
각각 사용할 수 있습니다. 기술적으로 요구 사항은 아니지만 괄호를 사용하여 두 진술을 더 명확하게 표시합니다.
{%if ( fields | length > 0 ) or ( trans_fields | length > 0 ) %}
식
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.
더 복잡한 작업의 경우 혼동을 피하기 위해 개별 표현식을 괄호로 묶는 것이 가장 좋습니다.
{% if (foo and bar) or (fizz and (foo + bar == 3)) %}