symfony如何"通配符一切"路线

时间:2015-11-27 13:07:37

标签: php symfony routing

我想通过以下方式在Symfony中创建路线:/admin/_api/*/admin/*。所以,总的来说我希望得到如下配置:

/admin/_api/users
/admin/_api/posts
/admin/_api/comments
/admin/_api/* -> (AdminBundle:Error:api)
/admin/*  -> (AdminBundle:Error:html)

根据给定的配置,如果用户转到/admin/_api/test,路由器将发送到ErrorController::apiAction。如果用户转到/admin/users,则会发送到ErrorController:htmlAction

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

也许可以在routes.yml:

中尝试使用它
...
all your routes that should match first
...
admin_api_wildcard:
  pattern:  /admin/_api/{wildcard}
  defaults: { _controller: AdminBundle:Error:api }
  requirements:
      wildcard: .*

在较新的symfony版本pattern中被path取代:

...
all your routes that should match first
...
admin_api_wildcard:
  path:  /admin/_api/{wildcard}
  defaults: { _controller: AdminBundle:Error:api }
  requirements:
      wildcard: .*