【问题标题】:Symfony 2 routing in controler控制器中的 Symfony2 路由
【发布时间】:2012-10-13 07:21:34
【问题描述】:

我有一个简单的问题。有什么方法可以在 cotroler 中使用路由从这样的链接获取:

some-text-link-282237

值 282237。

现在我通过以下方式传递整个网址:

@Route("/route/{id}", name="my_route")

然后 preg 匹配它,但也许有更清洁的方法。该值始终位于字符串末尾,由最后一个 (-) 分隔

感谢您的帮助,对于语言错误,我们深表歉意

【问题讨论】:

    标签: url variables symfony routing


    【解决方案1】:
    /**
     * @Route("/route/{slug}-{id}",
     *        name="route_name",
     *        requirements={"slug":"[a-zA-Z0-9\-]+","id":"\d+"})
     */
    

    【讨论】:

      【解决方案2】:

      您可以尝试这样的路由:@Route("/route/{some}/{text}/{link}/{id} 并直接获取您的 id 作为参数或更改分隔符路由:http://symfony.com/doc/2.0/cookbook/routing/slash_in_parameter.html 直接使用“-”作为路由分隔符

      【讨论】:

      • 谢谢,但我不能,我只在这种情况下需要它,所以我不能更改整个项目的路由参数。所以我猜 preg_match 保持不变吧?
      • 那你为什么不叫这个uri:some/text/link/282237?并使用这种路由的每个参数:@Route("/route/{some}/{text}/{link}/{id}
      • 但如果只是针对这种情况,那么您可以使用我之前给您的链接。它允许您仅更改功能的分隔符。这样你就可以保留所有其他功能的斜线。
      • 但网址必须看起来像 http://www .portal.com/category/subcategory/some-text-link-999999
      • 啊,好吧,他希望您只更改部分网址的分隔符 O_o 您如何生成此网址? (php, twig ?) 你能给我们看一些代码吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 2016-03-30
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      相关资源
      最近更新 更多