Symfony2 中的路由

2022-08-30 17:00:08

如何在Symfony2中设置默认路由?

在Symfony1中,它看起来像这样:

homepage:
  url:   /
  param: { module: default, action: index }

default_symfony:
  url:   /symfony/:action/...
  param: { module: default }

default_index:
  url:   /:module
  param: { action: index }

default:
  url:   /:module/:action/...

答案 1

我正在翻阅食谱来寻找这个问题的答案,并认为我在这里找到了答案。默认情况下,所有路由参数都有一个隐藏的要求,即它们与 / 字符 ([^/]+) 以外的任何字符匹配,但可以通过强制此行为与任何字符匹配来使用 requirements 关键字覆盖此行为。

以下内容应创建一个捕获所有其他路由的默认路由 - 因此,在路由配置中应位于最后,因为任何后续路由都永远不会匹配。为了确保它也与“/”匹配,请包含 url 参数的默认值。

default_route:
    pattern: /{url}
    defaults: { _controller: AcmeBundle:Default:index, url: "index" }
    requirements:
        url: ".+"

答案 2

我认为使用标准路由组件是不可能的。看看这个捆绑包,它可能会有所帮助:https://github.com/hidenorigoto/DefaultRouteBundle


推荐