symfony如何“通配符一切”路线

Gas*_*sim 3 php routes symfony

我想通过以下方式在 Symfony 中创建一条路由:/admin/_api/*/admin/*。所以,总的来说,我想要一个如下的配置:

/admin/_api/users
/admin/_api/posts
/admin/_api/comments
/admin/_api/* -> (AdminBundle:Error:api)
/admin/*  -> (AdminBundle:Error:html)
Run Code Online (Sandbox Code Playgroud)

根据给定的配置,如果用户访问/admin/_api/test,路由器将调度到ErrorController::apiAction。如果用户访问,/admin/users它将分派到ErrorController:htmlAction

有办法实现这一点吗?

joh*_*ith 6

也许可以根据需求尝试一下,在routing.yml中:

...
all your routes that should match first
...
admin_api_wildcard:
  pattern:  /admin/_api/{wildcard}
  defaults: { _controller: AdminBundle:Error:api }
  requirements:
      wildcard: .*
Run Code Online (Sandbox Code Playgroud)

在较新的 symfony 版本中pattern被替换为path

...
all your routes that should match first
...
admin_api_wildcard:
  path:  /admin/_api/{wildcard}
  defaults: { _controller: AdminBundle:Error:api }
  requirements:
      wildcard: .*
Run Code Online (Sandbox Code Playgroud)