4

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

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

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

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

生成 /testnumber?tes​​tid=1&question=4 的 URL,这是我不想要的。

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

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

这是我的路线:

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

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

4

1 回答 1

21

为了

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

要按照您的意愿工作,您的路线必须看起来像(使用注释的示例)

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

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

generated_route?test_id=X&question=X

在此处找到更多相关示例。

于 2012-09-28T14:31:46.010 回答