web-dev-qa-db-ja.com

Symfony 2.2の「レンダリング」でTwigにコントローラーを挿入する方法は?

私のプロジェクトをSymfony 2.0.22から2.2.0にアップグレードし、いくつかの変更を確認していますが、これはブロックされています:

(Sf 2.0.Xのように)コントローラーでヘッダーをレンダリングしたいのですが、 "render" twigメソッドは機能しません。エラーは次のとおりです。

「OSSiteBundle:Index:index.html.twig」のテンプレートのレンダリング中に例外がスローされました(「GET Index:header」のルートが見つかりません)。

実際のレンダリング方法は次のとおりです。

{#src/OS/SiteBundle/Resources/views/layout.html.twig#}

...

{%render "OSSiteBundle:Index:header" with {'thisid':block( 'thisid')、...}%}

私は試した :

{{ render('OSSiteBundle:Index:header' , {'thisid' : block('thisid'), 'thistitle' : block('thistitle'), 'thisunderpageid' : block('thisunderpageid'), 'thisbackground' : block('thisbackground') }) }}

{{ include("OSSiteBundle:Index:header.html.twig", {'thisid' : block('thisid'), 'thistitle' : block('thistitle'), 'thisunderpageid' : block('thisunderpageid'), 'thisbackground' : block('thisbackground') }) }}

=>最後の1つは動作しますが、コントローラーはこの方法で照合されません

Routing.ymlのパスを使用してレンダーを試みました...他のアイデアはありません!

33
Benji_X80

Symfony> = 2.2.xでは、次のようにコントローラーを埋め込む必要があります。

{{ render(controller('AcmeArticleBundle:Article:recentArticles', { 'max': 3 })) }}

ドキュメントを見てください:

テンプレートの作成と使用

PGRADE-2.2

87
Juan Sosa