Ответ 1
{{ (ability.id in company_abilities) ? 'selected' : '' }}
Тернарный оператор документируется в разделе других операторов
Можно ли использовать тройные операторы в шаблоне ветки? Теперь для добавления некоторого класса в элемент 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
Отрывок:
{{ foo ? 'yes' : 'no' }}
Оценивает:
if
foo
echoyes
else echono
Случай № 2
Отрывок:
{{ foo ?: 'no' }}
или
{{ foo ? foo : 'no' }}
Оценивает:
if
foo
эхо, иначе echono
Случай №3
Отрывок:
{{ foo ? 'yes' }}
или
{{ foo ? 'yes' : '' }}
Оценивает:
if
foo
echoyes
else echo nothing
??
)Случай №1
Отрывок:
{{ foo ?? 'no' }}
Оценивает:
Возвращает значение
foo
, если оно определено и не null,no
иначе
Примечание: это немного отличается от {{ foo|default('no') }}
, так как последнее будет запускаться также из пустых значений, таких как ''
.