2017-02-02 1 views
0

2本のバンドルを作った。私はそれぞれのコントローラのそれぞれにアクションメソッドを作成しました。Symfony別のコントローラからの転送/取得結果は何も返されない

私はAがBに発生するもののビューの内容を含めることを試みてきた

B.

にAの結果を取得しようとしていますが、私は、変数が欠落して終わるので、私は転送の結果を取得しますそれ。

私は文書を読んで、$variable=$this->forwad(MyControllerA)を使用することに決めましたが、私の$variableは、ビュー内のデータを読むと何の結果も得られません。

私は何か間違ったことをしている場合、またはこれを別の方法で行う必要がある場合、似たような問題は見つけられませんでした。

コード

public function getAAction() 
{ 
    $em = $this->getDoctrine()->getManager(); 

    $list_A = $em->getRepository('ABundle:A_Entity')->findAll(); 

    return $list_A; 
} 

public function getBAction() 
{ 
    $em = $this->getDoctrine()->getManager(); 

    $list_B = $em->getRepository('PropertyBundle:B_Entity')->findAll(); 

    $list_A = $this->forward('A_Bundle:A_Entity:getA'); 

    return $this->render('@B/B/getB.html.twig', array('list_B' => $list_B, 'list_A' => $list_A)); 
} 
+1

はあなたのコードのより長いサンプルを提供することができます従うと呼ばれますか? –

+1

あなたのAコードを添付し、 'dump($ variable)'の結果を提供できますか? –

答えて

0

http://symfony.com/doc/current/controller/forwarding.html

$variable=$this->forwad(MyControllerA)

は私が間違っていた私たちのコードを表示しません。

@Rendyが提案したように変数をダンプし、より深い研究を行い、より多くのことを理解しました。それは応答とのフォワード作業を意味する。

そこから私は得た応答を操作しようとしましたが、私の知識の欠如と研究にもかかわらず、私は送られた配列を取得する方法を見つけることができませんでした。あなたはそのコンテナを呼び出すときにはnullであるため、最後の行に疑問を抱いている場合は、私のバンドル

services: 
    bundle_a: 
     class: BundleA\Controller\AController 
     calls: 
        - [ "setContainer", [ "@service_container" ] ] 

services.ymlに従うよう

は、そのため私はサービスに私のコントローラを変換します。その行はそれを修正しました。あなたはSymfony: Why is method $this->get() not available in constructor?

を見ることができます詳細情報について は、その後、私はちょうどB Controllerの私の方法

$list_a= $this->get('bundle_a')->getAAction(); 
0

それは$variable=$this->forwad(MyBundle:MyControllerA:myAction)であるべきで、あなたがより良い助けを得ることができますので、私が見つけた

関連する問題