在Symfony中使用{slug}生成Url

时间:2016-01-14 10:34:59

标签: php symfony

我有一个控制器的以下路线:

/**
 * @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);

哪个有效,但在很多层面上感觉不对,什么是"对"解决方案?

1 个答案:

答案 0 :(得分:3)

你应该好好接受这个:

return $this->redirect($this->generateUrl('bookFail', array('uid' => $jobExists->getId())), 301);

问题出在参数url中你需要在路由定义和你在generateUrl函数中传递的数组参数中使用相同的参数名称