【问题标题】:symfon 1.4 load different routing.yml based on url parameter inside a pluginsymfony 1.4 根据插件内的 url 参数加载不同的 routing.yml
【发布时间】:2011-10-06 17:00:55
【问题描述】:

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

例子:

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

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

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

【问题讨论】:

  • 我为 Symfony 1.4 项目构建了一个执行此操作的系统,但它超级复杂。我最终不得不从上到下重做 Symfony 的路由配置处理程序;它只是不被设计成以这种方式被覆盖。如果有更简单的方法可以满足您的需求,我建议您改用它。

标签: configuration routing load symfony-1.4 symfony-plugins


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 2019-07-18
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多