Вложен, если другое в Twig

Есть ли способ реализовать вложенную функциональность if else? Я пробовал следующее, но он не работает:

<body 
        {% if page|default('login') == 'login' %} 
              class="login"
        {% else if( page == 'other') %}
              class="login"
        {% else %}
              class="noclass"
        {% endif %}>
</body>

Ответы

Ответ 1

elseif должен быть однословный тег/ключевое слово, а выражение не должно иметь круглые скобки, такие как выражение if.

http://twig.sensiolabs.org/doc/tags/if.html

<body
    {% if page|default('login') == 'login' %}
          class="login"
    {% elseif page == 'other' %}
          class="login"
    {% else %}
          class="noclass"
    {% endif %}>
</body>

Ответ 2

Вы также можете использовать термальный оператор , чтобы сократить ваше выражение...

... и вам, вероятно, не следует повторять часть class="..".

<body class="{{ page|default('login') in ['other','login'] ? 'login' : 'noclass' }}">