Silex 添加比已有路由优先级更高的路由
Silex add route with higher priority than existing routes
我的 Silex 路由在 routing.yml 配置文件中定义。
在我的 php 代码中,我想动态添加一些新路由,并且我希望这些路由具有比 routing.yml 中定义的路由更高的优先级。
目前我正在添加我的路由,如下例所示,但它们被添加到底部,即优先级最低。
$this->app->match('/page/{slug}', array($this, 'record'))
->bind('extrapages')
->method('GET|POST');
例如,此路由永远不会匹配,因为 routing.yml 中有一条路由与以下路径匹配:
path: /{contenttypeslug}/{slug}
如何在现有路线之上添加我的新路线?
顺便说一句,我正在使用基于 Silex 构建的 Bolt CMS,并尝试在螺栓扩展中添加这些新路线。因为这个问题是关于 Silex 路由的,所以我使用的是 Bolt 应该不会有太大的不同。
这不是一个非常干净的解决方案,但每当我在 routing.yml
中否决了扩展程序的路由时,我只需再次将扩展程序的路由添加到 routing.yml
,将其指向我的扩展程序代码。如果你把它放在顶部附近,它就会被使用,因为在 Silex 中路由被解析 'top down'。使用第一场比赛。
sitemap:
path: /sitemap
defaults:
_controller: 'Bolt\Extension\Bolt\Sitemap\Extension::sitemap'
对于此解决方案的不当之处,我深表歉意。
我的 Silex 路由在 routing.yml 配置文件中定义。
在我的 php 代码中,我想动态添加一些新路由,并且我希望这些路由具有比 routing.yml 中定义的路由更高的优先级。
目前我正在添加我的路由,如下例所示,但它们被添加到底部,即优先级最低。
$this->app->match('/page/{slug}', array($this, 'record'))
->bind('extrapages')
->method('GET|POST');
例如,此路由永远不会匹配,因为 routing.yml 中有一条路由与以下路径匹配:
path: /{contenttypeslug}/{slug}
如何在现有路线之上添加我的新路线?
顺便说一句,我正在使用基于 Silex 构建的 Bolt CMS,并尝试在螺栓扩展中添加这些新路线。因为这个问题是关于 Silex 路由的,所以我使用的是 Bolt 应该不会有太大的不同。
这不是一个非常干净的解决方案,但每当我在 routing.yml
中否决了扩展程序的路由时,我只需再次将扩展程序的路由添加到 routing.yml
,将其指向我的扩展程序代码。如果你把它放在顶部附近,它就会被使用,因为在 Silex 中路由被解析 'top down'。使用第一场比赛。
sitemap:
path: /sitemap
defaults:
_controller: 'Bolt\Extension\Bolt\Sitemap\Extension::sitemap'
对于此解决方案的不当之处,我深表歉意。