2012-05-09 8 views
0

私はsymfonyの2Symfony 2のサブネームペースコントローラからアクションを埋め込む方法は?

がある問題で小枝ビュー内からサブ名前空間のコントローラにあるアクションレンダリングしようとしている:それは中ですので、レンダリングヘルパーは、コントローラ/アクションを見つけることができませんが以下の名前空間コントローラ

これは私のコントローラである: のsrc /アクメ/バンドル/ TestBundle /コントローラ/ FirstModule/ExampleController.php

namespace Acme\Bundle\TestBundle\Controller\FirstModule; 

class ExampleController extends Controller 
{ 
    public function exampleAction(Request $request) 
    { 
     return $this->render('AcmeTestBundle:FirstModuleExample:example.html.twig'); 
    } 

    public function embedAction(Request $request) 
    { 
     return $this->render('AcmeTestBundle:FirstModuleExample:embed.html.twig'); 
    } 
} 

これが私の見解です: のsrc /アクメ/バンドル/ TestBundle /リソース/views/FirstModuleExample/example.html.twig

{% render "AcmeTestBundle:Example:embed" %} 
// or 
{% render "Acme\Bundle\TestBundle\Controller\FirstModule\Example:example" %} 
// or 
{% render "Acme\Bundle\TestBundle\Controller\FirstModule\ExampleController:exampleAction" %} 

私はEmbedding Controllersドキュメントが、手掛かりを読んだことがありますサブネームスペースにあるコントローラを処理する方法があります。

ありがとうございました。

答えて

4

これらのいずれかが機能するはずです。覚えて、文字列内のバックスラッシュをエスケープする必要がある(すなわち、二倍)

{% render "AcmeTestBundle:FirstModule\\Example:embed" %} 

または

​​
+0

ありがとう、働いた! Shame Symfonyはこれをドキュメントに含めていません。 – ilanco

+0

そのページにはありません。ビュー/コントローラシステムで時間を費やした後、あなたは 'Bundle:Controller:Action'または' FQCN :: actionName' –

0

バックスラッシュ表記を使用できるはずですが、私はすべてのコントローラを単一の名前空間に入れることを練習してから試していないと思います。このような

何か:

{% render "Acme\Bundle\TestBundle\Controller\FirstModule\Example:example" %} 
+0

機能しなかった、ということしようとしました。 'AcmeTestBundle:FirstModule:example.html.twig in 1行目に存在しないサービス" acmebundletestbundlecontrollerfirstmoduleexample "をテンプレートのレンダリング中に例外がスローされました。' – ilanco

1

はこれを試したことがありますか?

{% render "AcmeTestBundle:FirstModule/Example:embed" %} 

またはこれですか?

{% render "AcmeTestBundle:FirstModule\\Example:embed" %} 
+0

面白い、面白いページがレンダリングされました。 '致命的なエラー:クラスAcme \ Bundle \ TestBundle \ Controller \ FirstModule \ ExampleControllerを再宣言できません。 ' – ilanco

+0

キャッシュをクリアした後、私は別のエラーが発生しました。'例外のレンダリング中に例外がスローされました。テンプレート( "オートローダが期待するクラス" Acme \ Bundle \ TestBundle \ Controller \ FirstModule/ExampleController "は" ../src/Acme/Bundle/TestBundle/Controller/FirstModule/ExampleController.php "ファイルで定義されています。そのクラスはクラス名でも名前空間もタイプミスの可能性があります。 ")AcmeTestBundle:FirstModuleExample:example.html.twig in line 1'' – ilanco

+0

私はまだ別のe xample(ディレクトリセパレータを名前空間セパレータで置き換えてみてください)。 –

関連する問題