Twig генерирует исключение, если / else включает / расширяет поведение

#exception #symfony #twig

#исключение #symfony #twig

Вопрос:

Кто-то успешно реализовал такую часть кода Twig?

 {% if request.isXmlHttpRequest %}
    {% include ":Elements:cufor-font-replacement.html.twig" %}
{% else %}
    {% extends "::layout-clean.html.twig" %}
{% endif %}
 

не видя:

Шаблон, который расширяет другой, не может иметь тело (переменные Twig_Node_Include(only: false expr: Twig_Node_Expression_Constant(значение: ‘:Elements:cuf-font-replacement.html.twig’) в «:Users:create.html.twig» в строке 2.

Ответ №1:

К сожалению, невозможно условно расширить шаблон в Twig. Вам нужно будет создать другой шаблон, который расширяет «::layout-clean.html.twig» и включает его условно.

Комментарии:

1. Спасибо за подтверждение об этом. С другой стороны, глядя на это twig.sensiolabs.org/doc /… это не работает для меня, так как я могу получить сообщение об ошибке, что переменная запроса не существует (передается в шаблон, и {{request }} показывает это. Приведенный ниже код также не работает (и {{ layout }} печатает ok {% set layout = request.isXmlHttpRequest ? «::layout-xhr.html.twig»: «::layout-clean.html.twig» %} {% extends layout %}

2. Экземпляр запроса должен быть доступен через app.request , но я не уверен в этом.