【发布时间】:2018-08-05 21:56:16
【问题描述】:
我在两个单独的包中有两条路由:bundleA_route、bundleB_route。在我的 /app/config/routing.yml 中,我将它们作为资源加载,例如:
bundle_a_routing:
resource: "@SomeABundle/Resources/config/routing.yml"
prefix: /
bundle_b_routing:
resource: "@SomeBBundle/Resources/config/routing.yml"
prefix: /
在大多数情况下,此序列是必需的,首先尝试匹配bundle_a_routing 中的路由,然后然后尝试匹配bundle_b_routing 中的路由,但只有一种情况我想要做一个例外,我希望在bundle_b_routing 中定义的单个路由在bundle_a_routing 中定义的更“让步”路由之前匹配:
route_in_bundle_a:
path: /admin/{path}
defaults: { _controller: SomeABundle:SomeCtrl:someAction }
methods: [GET]
requirements:
path: ^(.*)$
route_in_bundle_b:
path: /admin/download/{formId}/{fileName}
defaults: { _controller: SomeBBundle:SomeOtherCtrl:someOtherAction }
methods: [GET]
requirements:
formId: \d+
fileName: ^([a-fA-F0-9]{32}(?:\.[a-zA-Z0-9]{1,222})?)$
现在请求 URI "http://servername/web/app_dev.php/admin/download/12/23d2fff7f606e93acac9ede5b4e2b394.png" 匹配第一个,但我想匹配第二个......这种情况下的官方场景是什么?
【问题讨论】:
-
您确定您的
route_in_bundle_b随时都会被调用吗?在我看来,route_in_bundle_a以任何方式取代了它。您能否提供一个 URL,请求将通过route_in_bundle_a并到达route_in_bundle_b?
标签: symfony