Подтвердить что ты не робот

Существует ли сокращенный синтаксис Twig для вывода условного текста

Есть ли более короткий синтаксис в Twig для вывода условной строки текста?

<h1>{% if not info.id %}create{% else %}edit{% endif %}</h1>

Традиционный php еще проще, чем это:

<h1><?php info['id']? 'create' : 'edit' ?></h1>
4b9b3361

Ответ 1

Это должно работать:

{{ not info.id ? 'create' : 'edit' }}

Кроме того, это называется тернарным оператором. Это скрыто в предложении: twig docs: operator

Из их документации основная структура:

{{ foo ? 'yes' : 'no' }}

Ответ 2

Если вам нужно сравнить значение равно тому, что вы можете сделать:

{{  user.role == 'admin' ? 'is-admin' : 'not-admin' }}

Вы можете использовать Elvis Operator внутри ветки:

{{  user ? 'is-user' }} 

{{  user ?: 'not-user' }} // note that it evaluates to the left operand if true ( returns the user ) and right if not