Передача переменной в включаемый шаблон ветки, который имеет переменную в имени шаблона
Можно ли передавать переменные в включаемый шаблон ветки, где имя шаблона является самой переменной?
{% include('MyMainBundle:MyEntity:' ~ entity.templateName) %}
работает, но когда я пытаюсь передать переменную в этот шаблон, twig выдает синтаксическую ошибку.
{% include('MyMainBundle:MyEntity:' ~ entity.templateName, {'name' : myName} ) %}
Ответы
Ответ 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} }}
не работает.