2017-09-25 20 views
1

更新、非推奨のコードを小枝と私はレンダリング・コントローラのアクションは

{{ render(controller('MyBundle::menu', {})) }} 

小枝にタグ

> {% render url('_internal_main_navigation', {}) %} 

transaltesをレンダリングの問題を以下の持っている、それは「コントローラ」と「アクション」を追加し、この事したがって、MyBundle/Controller/Controller->menuAction()を呼び出す必要がありますが、コントローラクラスには「MyController」のようなプレフィックスがあると思われますので、twigルートは'Bundle:My:menu' のように指定できます。それ以外の場合は

クラス「MyBundle」のNOEは

が、私はそれがコントローラを接頭辞なしで動作することはできますが存在しませんか?

+0

コントローラーに何を伝えるのに問題がありますか?もしあなたがそれを置かなければ、小枝のレンダリングはどのようなものを呼び出さなければならないのでしょうか? –

+0

コントローラーは "bundle:class:action"のクラス部分に追加されているので何も指定しないとController.phpを使うべきですが、そうではありません。私はちょうどその名前のクラスを持っています - 指定されたルートがmenuAction関数のために定義されているController.php。 – Martin

答えて

1

url()経由のルートもサポートするrender_esi()を使用することをお勧めします。今後もESI用に設定されています。

デフォルトは()関数を使用してレンダリングする(または インラインへのレンダラを設定)、symfonyはクライアントに応答を送信する前に、メイン1 に含まれるページ内容をマージします。しかし、レンダラ(ie render_esi())を呼び出して、symfonyがESIをサポートするゲートウェイキャッシュと通信していることが検出された場合、ESI インクルードタグを生成します。しかし、ゲートウェイキャッシュが存在しない場合、または がESIをサポートしていない場合、Symfonyはレンダリング()を使用した場合のように、組み込まれたページコンテンツを のメインページにマージします。

{{ render_esi(url('_internal_main_navigation', {})) }} 

あなたはコントローラ名でレンダリングしたい場合は、サービスにあなたのコントローラーを回すことができる:

は、次の構文は、あなたのケースで動作しますUsing ESI in Symfony

を参照してください。サービス名(mybundle_controller)で参照してください。

関連する問題