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

Twig: отображаемая переменная, только если она существует

Есть ли разумный способ отображения/использования переменной веточки, только если она существует?

Скажем, у меня есть структура:

'opt1': {'visible': false, 'bundle': 'XxxBundle', 'name': 'label1'},
'opt2': {'visible': true, 'bundle': 'YyyBundle', 'name': 'label2', 'params': '/par1'},

и я использую его в:

<a href="{{path(desc.bundle ~ '_' ~ action ~ desc.params)}}">

Я бы хотел, чтобы ветка пропускала desc.params, если она не существует для отдельной записи. Есть ли более разумный способ, чем использование инструкции if?

4b9b3361

Ответ 1

Вы можете просто передать ему пустую строку по умолчанию.

<a href="{{path(desc.bundle ~ '_' ~ action ~ desc.params|default(''))}}">

Таким образом, если не определено его просто пустая строка. Подробнее о фильтре по умолчанию можно узнать здесь: http://twig.sensiolabs.org/doc/filters/default.html

Ответ 2

Другое решение - установить strict_variables в false в файле config.yml:

twig:
    ...
    strict_variables: false