我有一个插件,我需要根据查询字符串中的变量加载不同的routing.yml文件。
示例:
if($request->getParameter('page'){
// use routingPage.yml
}
else{
// use another routing.yml
}
所以,如果url中的page参数url_for('@ route1')将返回一个url,否则相同的url_for('@ route1')将返回其他url。
如何覆盖rouing.yml加载机制来做我想做的事?
答案 0 :(得分:0)
每个应用程序只能有一个 routing.yml
(当然它可以被其他插件覆盖)。
原因很简单:如果你想使用多个路由文件(比如routing1.yml
和routing2.yml
),它们都有一个名为route1
的路由,它会重定向到分别为controller1/action
和controller2/action
。
也许您可以在视图中切换它,并转到一个案例中的controller1/action
和另一个案例中的controller2/action
。但是:当一个新请求到来时,前端控制器正在确定要执行哪个控制器/操作:现在如何使用routing.yml
?
所以我不确切地知道你想要实现什么,但我会在routing.yml
中选择两条路线,并根据您的视图参数选择路线。