Можно ли использовать тройные операторы в шаблоне ветви? Теперь для добавления некоторого класса в элемент DOM зависит от некоторого условия, которое я делаю следующим образом:
{%if ability.id in company_abilities%} <tr class="selected"> {%else%} <tr> {%endif%}
Вместо
<tr class="<?=in_array($ability->id, $company_abilities) ? 'selected' : ''?>">
в встроенном шаблоне шаблонов php.
{{ (ability.id in company_abilities) ? 'selected' : '' }}
Тернарный оператор документирован под « другими операторами »,
Вы можете использовать сокращенный синтаксис с Twig 1.12.0
{{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }} {{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }}
?:
Поддержка расширенного тернарного оператора была добавлена в Twig 1.12.0 .
Дело 1
Snippet:
{{ foo ? 'yes' : 'no' }}
Оценивает:
if
foo
echoyes
else echono
Случай №2
Snippet:
{{ foo ?: 'no' }}
или
{{ foo ? foo : 'no' }}
Оценивает:
если
foo
echo it, else echono
Случай №3
Snippet:
{{ foo ? 'yes' }}
или
{{ foo ? 'yes' : '' }}
Оценивает:
if
foo
echoyes
else echo nothing
??
) Дело 1
Snippet:
{{ foo ?? 'no' }}
Оценивает:
Возвращает значение
foo
если оно определено, а не null , иначе
Примечание: это немного отличается от {{ foo|default('no') }}
, так как последнее будет вызвано также из пустых значений типа ''
.