Symfony2 GenerateURL到复杂的路线

roo*_*ter 4 routing symfony

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

return $this->redirect($this->generateUrl('testnumber'));
Run Code Online (Sandbox Code Playgroud)

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

generateURL('testnumber', array('testid'=>1, 'question'=>4))
Run Code Online (Sandbox Code Playgroud)

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

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

        return $this->redirect($this->generateUrl(???????????),true));
Run Code Online (Sandbox Code Playgroud)

这是我的路线:

@Route("/testnumber/{testid}/question/{question}", name="testnumber")
Run Code Online (Sandbox Code Playgroud)

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

Ahm*_*ani 21

对于

generateURL('testnumber', array('testid'=>1, 'question'=>4))
Run Code Online (Sandbox Code Playgroud)

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

@Route("/testnumber/{testid}/question/{question}", name="testnumber")
Run Code Online (Sandbox Code Playgroud)

如果您没有在路线中定义"testid"和"question"参数,它们将被添加到查询字符串中(作为GET参数附加在URL的末尾)

generated_route?test_id=X&question=X
Run Code Online (Sandbox Code Playgroud)

在这里找到更多相关的例子.