0

我有一个插件,我需要根据查询字符串中的变量加载不同的 routing.yml 文件。

例子:

if($request->getParameter('page'){
 // use routingPage.yml
}
else{
 // use another routing.yml
}

因此,如果 url 中的页面参数 url_for('@route1') 将返回一个 url,否则相同的 url_for('@route1') 将返回另一个 url。

如何覆盖 rouing.yml 加载机制来做我想做的事?

4

1 回答 1

0

每个应用程序只能有一个 routing.yml(当然它可以被其他插件覆盖)。

这样做的原因很简单:如果你想使用多个路由文件(比如routing1.ymlrouting2.yml),它们都有一个名为 的路由route1,分别重定向到controller1/actioncontroller2/action。也许您可以在视图中切换它,并controller1/action在一种情况下转到另一种情况controller2/action。但是然后:当一个新的请求到达时,前端控制器正在确定要执行哪个控制器/动作:它现在如何routing.yml使用哪个?

所以我不确切知道你想要实现什么,但我会在你的routing.yml中选择两条路线,并根据你的视图参数选择路线。

于 2011-10-07T07:30:39.350 回答