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

Передача переменной в включаемый шаблон ветки, который имеет переменную в имени шаблона

Можно ли передавать переменные в включаемый шаблон ветки, где имя шаблона является самой переменной?

{% include('MyMainBundle:MyEntity:' ~ entity.templateName) %}

работает, но когда я пытаюсь передать переменную в этот шаблон, twig выдает синтаксическую ошибку.

{% include('MyMainBundle:MyEntity:' ~ entity.templateName, {'name' : myName} ) %}
4b9b3361

Ответ 1

Я вижу, что я делаю неправильно. Я объединил две разные версии include, один из которых {{и другой с использованием {% из-за сифонии и твиковых документов, показывающих различные способы включения шаблонов). Это было так же просто, как удаление скобки из моего исходного кода и вставка a с до определения аргумента.

Вы можете включить шаблон, подобный этому, для http://symfony.com/doc/current/book/templating.html#including-other-templates

{{ include('AcmeArticleBundle:Article:articleDetails.html.twig', {'article': article}) }}

Или как это за http://twig.sensiolabs.org/doc/tags/include.html

{% include 'template.html' with {'foo': 'bar'} %}

Ответ 2

Для имени шаблона в качестве переменной мне пришлось использовать этот формат:

{% include 'AcmeCalendarBundle:Default:cal_event_' ~ day.item.type ~ '.html.twig' with {'item': day.item} %}

Использование

{{ include 'AcmeCalendarBundle:Default:cal_event_' ~ day.item.type ~ '.html.twig', {'item': day.item} }}

не работает.