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
?
Ответы
Ответ 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