Я хочу использовать фильтр в условии if в Twig. Причиной этого является атрибут Symfony2, который я не могу сравнивать напрямую, я должен его заранее изменить. Я начал с этого кода:Twig: фильтр в состоянии if
{% if app.request.attributes.get('_controller')|split('::')|first == 'some\controller\name' %}
do something
{% endif %}
К сожалению, это не работает. Поэтому я думал, что буду использовать набор перед сравнением:
{% set controller = app.request.attributes.get('_controller')|split('::')|first %}
{% if controller == 'some\controller\name' %}
do something
{% endif %}
{{ controller }} {# would print 'some\controller\name' #}
Угадайте, что? «делать что-то» не печатается, даже если переменная контроллер теперь существует и имеет значение, с которым я сравниваю это. Что я делаю не так?
У вас слишком много логики в представлении, я бы переместить логику контроллеров. Сделайте просмотр простым, его намного легче проверить. –
Я не вижу смысла всегда назначать одно и то же значение шаблону в каждом действии контроллера, когда я могу иметь одно логическое выражение в самом представлении. Это просто заканчивается ошибками, повторяющимися ... – bekay
Он должен работать ... Вы не используете кеш на своей странице? – Sybio