2017-06-15 172 views
2

我有一個奇怪的問題。我想setAction形成重定向到另一個控制器。 我有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($這個 - > 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

相關問題