2017-06-15 15 views
2

私は奇妙な問題があります。私は別のコントローラにリダイレクトするように設定するアクションを設定します。 私は2つのコントローラをユーザーとアドレス用に持っています。経路上/ {idが} /私たちはユーザコントローラ枝であり、これはある変更、フォームを生成した:フォームアクションが別のコントローラにリダイレクトされるSymfony2.8

 $add=new Address(); 
    $formAddress=$this->createFormBuilder($add) 
     ->setAction($this->redirectToRoute("/{id}/addAddress",array('id'=>$id))) 
     ->add("city","text") 
     ->add("street","text") 
     ->add("housenumber","text") 
     ->add("flatnumber","text") 
     ->add("send","submit") 
     ->getForm(); 

提出後、私はアドレス・コントローラのルートであり、フォームが処理されるコントローラをアドレスにリダイレクトされるようにします/ {id}/addAddress。 事前にお返事ありがとうございます!乾杯!

+0

チェックし、[ドキュメント](http://symfony.com/doc/current/form/action_method.html)は、 '使うべき - > SetActionは(の$ this - > generateUrl( 'target_route_name' を、['id' => $ id])) ' – JimL

+0

助けてくれてありがとう!何十種類ものバリエーションを使用しています。 – Marduuk

答えて

1

あなたの行動は正しくありません。 redirectToRouteファンクションを使用する場合は、ルート名が必要です。

// redirect to a route with parameters 
return $this->redirectToRoute('blog_show', array('slug' => 'my-page')); 

最初のパラメータ(文字列)は、フォームを送信しようとするルートの名前です。それ以外の場合は、リダイレクトを使用してgenerateUrlを使用してURLを取得する必要がありますが、redirectToUrlは新しい方が短くなります。

https://symfony.com/doc/current/controller.html

関連する問題