24

テンプレート名自体が変数である、含まれている twig テンプレートに変数を渡すことは可能ですか?

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

動作しますが、このテンプレートに変数も渡そうとすると、twig は構文エラーをスローします。

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

2 に答える 2

50

私が間違っていたことがわかります。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'} %}
于 2013-04-12T23:25:30.017 に答える
7

テンプレート名を変数として使用するには、次の形式を使用する必要がありました。

{% 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} }}

動作しませんでした。

于 2014-11-17T10:28:18.110 に答える