テンプレート名自体が変数である、含まれている twig テンプレートに変数を渡すことは可能ですか?
{% include('MyMainBundle:MyEntity:' ~ entity.templateName) %}
動作しますが、このテンプレートに変数も渡そうとすると、twig は構文エラーをスローします。
{% include('MyMainBundle:MyEntity:' ~ entity.templateName, {'name' : myName} ) %}
私が間違っていたことがわかります。2 つの異なるバージョンの include を組み合わせました。1 つは {{ を使用し、もう 1 つは {% を使用しています。これは、symfony と twig のドキュメントがテンプレートをインクルードするさまざまな方法を示しているためです。これは、最初のコードから括弧を削除し、引数を定義する前に with を挿入するのと同じくらい簡単でした。
http://symfony.com/doc/current/book/templating.html#include-other-templatesごとに、このようなテンプレートを含めることができます
{{ include('AcmeArticleBundle:Article:articleDetails.html.twig', {'article': article}) }}
またはhttp://twig.sensiolabs.org/doc/tags/include.htmlごとにこのように
{% include 'template.html' with {'foo': 'bar'} %}
テンプレート名を変数として使用するには、次の形式を使用する必要がありました。
{% 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} }}
動作しませんでした。