【问题标题】:Symfony2 GenerateURL to a complex routeSymfony2 GenerateURL 到一个复杂的路由
【发布时间】:2012-09-28 14:25:40
【问题描述】:

这似乎是有史以来最愚蠢的问题,但我似乎无法弄清楚。我有一个页面需要重定向到复杂的路由,但我似乎无法生成 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”。

【问题讨论】:

  • 您的routing.yml 文件中是否有一条名为testnumber 的路由以testidquestion 作为参数?以here 为例。
  • 你能说明你是如何定义你的路线的吗?

标签: symfony routing


【解决方案1】:

对于

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

查找here 更多相关示例。

【讨论】:

  • 我的路线运行良好。我试图弄清楚如何生成 URL 以重定向到该路由。谢谢!
  • 您能否用您的路线定义更新您的问题?
  • 路线与您输入的完全相同。我只想知道如何使用 generateurl 方法生成它。 @Route("/testnumber/{testid}/question/{question}", name="testnumber")
  • 这很好用 > generateURL('testnumber', array('testid'=>1, 'question'=>4)) 我刚刚测试过了。
  • 您刚刚输入了我已经输入的内容,我说我不想要。 "generateURL('testnumber', array('testid'=>1, 'question'=>4))" 创建一个 URL "/testnumber?tes​​tid=1&question=4"。我想生成 URL “testnumber/1/question/4”。
猜你喜欢
  • 2012-10-18
  • 2017-01-20
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 2021-07-04
  • 2013-11-20
相关资源
最近更新 更多