나뭇 가지 삼항 연산자, 속기 if-then-else


149

Twig는 삼항 연산자를 지원합니까?

다음과 같은 조건부 논리가 필요합니다.

{%if ability.id in company_abilities %}
    <tr class="selected">
{%else%}
    <tr>
{%endif%}

Twig에서는 속기를 사용합니다.


허용되는 답변 변경을 고려해 주시겠습니까? Twig에서는 모든 유형의 속기 부분을 다루므로 내 커뮤니티가 더 포괄적이고 유용하다고 생각합니다.
Pmpr

답변:


294
{{ (ability.id in company_abilities) ? 'selected' : '' }}

삼항 연산자는 ' 기타 연산자 '에 문서화되어 있습니다.


1
이것은 버튼이나 항목을 현재 페이지에 대해 활성으로 표시하는 것과 같은 상황에서 매우 유용합니다.
Vahid Amiri

TRUE 인 경우 printing ability.id를 어떻게 사용합니까? ( "선택됨"대신).
gdaniel

1
@gdaniel{{ (ability.id in company_abilities) ? ability.id : '' }}
벤 스 윈번

감사. 인라인 조건부 내부에서 잔가지 변수를 인쇄하는 데 문제가 있습니다. 나는 이것을 시도 할 것이다.
gdaniel

이것이 CSS 클래스와 같은 속성 값을 추가하기 위해 인라인으로 작동 할 수 있는지 궁금합니다. 그것은 나를 위해 작동하지 않는 것 같습니다 : <div class="my-section {{ model.event.eventDate ? 'half' : '' }}">- 조건에 따라 여기에 CSS 클래스를 추가하고
Jordan

114

Twig 1.12.0부터 약식 구문을 사용할 수 있습니다

{{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }}
{{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }}

82

확장 삼항 연산자에 대한 지원이 Twig 1.12.0 에 추가되었습니다 .

  1. 만약 foo에코 yes다른 에코 no:

    {{ foo ? 'yes' : 'no' }}
  2. 만약 foo반향이, 다른 에코 no:

    {{ foo ?: 'no' }}

    또는

    {{ foo ? foo : 'no' }}
  3. 만약 foo에코 yes다른 에코 아무것도 :

    {{ foo ? 'yes' }}

    또는

    {{ foo ? 'yes' : '' }}
  4. foo정의되어 있고 null이 아닌 경우 값을 반환합니다 . no그렇지 않으면 :

    {{ foo ?? 'no' }}
  5. 정의 된foo 경우 의 값을 리턴합니다 ( 값도 계산 됨) .no

    {{ foo|default('no') }}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.