这似乎是最愚蠢的问题,但我似乎无法弄明白。我有一个页面需要重定向到一个复杂的路由,我似乎无法生成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”。
答案 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个更相关的例子。