我有一个控制器的以下路线:
/**
* @Route("/fail/{uid}", name="bookFail", defaults={"uid"=0})
*/
从另一个控制器,我重定向如下:
return $this->redirect($this->generateUrl('bookFail', array('id' => $jobExists->getId())), 301);
导致这一点:
/hvz/web/app_dev.php/fail?id=XXX
但应该是这样的:
/hvz/web/app_dev.php/fail/XXX
我目前的解决方案是:
$this->redirect(str_replace('?id=','/',$this->generateUrl('bookFail', array('id' => $jobExists->getId()))), 301);
哪个有效,但在很多层面上感觉不对,什么是"对"解决方案?
答案 0 :(得分:3)
你应该好好接受这个:
return $this->redirect($this->generateUrl('bookFail', array('uid' => $jobExists->getId())), 301);
问题出在参数url中你需要在路由定义和你在generateUrl
函数中传递的数组参数中使用相同的参数名称