Существует ли сокращенный синтаксис Twig для вывода условного текста Есть ли более короткий синтаксис в Twig для вывода условной строки текста? <h1>{% if not info.id %}create{% else %}edit{% endif %}</h1> Традиционный php еще проще, чем это: <h1><?php info['id']? 'create' : 'edit' ?></h1> Ответ 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 Ответ 3 Нулевой коалесцирующий оператор также работает, как: {% set avatar = blog.avatar ?? 'https://example.dev/brand/avatar.jpg' %}
Ответ 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
Ответ 3 Нулевой коалесцирующий оператор также работает, как: {% set avatar = blog.avatar ?? 'https://example.dev/brand/avatar.jpg' %}