Symfony2 GenerateURL到复杂的路线

时间:2012-09-28 14:25:41

标签: symfony routing

这似乎是最愚蠢的问题,但我似乎无法弄明白。我有一个页面需要重定向到一个复杂的路由,我似乎无法生成URL。重定向到一条简单的路线很容易:

return $this->redirect($this->generateUrl('testnumber'));

但是,我想路由到:testnumber / 1 / question / 4。我怎样才能完成这个非常简单的任务?我在文档和Google中找到的唯一的东西允许我添加参数,而不仅仅是创建一个复杂的路线。例如:

generateURL('testnumber', array('testid'=>1, 'question'=>4))

制作/ testnumber的网址?testid = 1& question = 4,我不想要。

编辑:是的,我已经在YML文件中创建了路径。我根本无法生成链接到它的URL。

        return $this->redirect($this->generateUrl(???????????),true));

这是我的路线:

@Route("/testnumber/{testid}/question/{question}", name="testnumber")

Symfony文档仅显示如何生成“testnumber / 1”的URL,我需要生成“testnumber / 1 / question / 4”。

1 个答案:

答案 0 :(得分:21)

对于

generateURL('testnumber', array('testid'=>1, 'question'=>4))

按照您的意愿工作,您的路线必须如下(使用注释的示例)

@Route("/testnumber/{testid}/question/{question}", name="testnumber")

如果你没有定义“testid”&路线中的“问题”参数,它们将被添加到查询字符串中(作为GET参数附加在URL的末尾)

generated_route?test_id=X&question=X

查找here个更相关的例子。