【问题标题】:Override single route in Symfony2在 Symfony2 中覆盖单个路由
【发布时间】:2012-11-07 13:10:26
【问题描述】:

如何在 Symfony2 中覆盖单个路由?

我有一个包含 bundle_routing.yml 文件的捆绑包。
在扩展此父捆绑包的捆绑包中,我也有路由文件: routing.xml
请注意,这些文件的名称不同。

在这个路由文件中,我喜欢覆盖单个父路由。
我尝试简单地重新声明它并更改模式。
但它没有应用。

父母:

MyParentBundle_detailpage:
    pattern:  /detail
    defaults: { _controller: "MyParentBundle:Item:detail" }

孩子:

<route id="MyParentBundle_detailpage" pattern="/itemDetails">
        <default key="_controller">MyParentBundle:Item:detail</default>
</route>

【问题讨论】:

    标签: symfony routes


    【解决方案1】:

    自己找到原因: 这是因为主路由文件中的导入顺序。

    app/config/routing.yml
    

    必须先导入父路由,再导入子bundle的路由。

    MyParentBundle:
        resource: "@MyParentBundle/Resources/config/bundle_routing.yml"
        prefix:   /
    MyChildBundle:
        resource: "@MyChildBundle/Resources/config/routing.xml"
        prefix:   /
    

    【讨论】:

    • 您确定需要最后导入孩子吗?因为据我所知 symfony2 采用第一个匹配路由,现在应该是父路由。
    • @MatsRietdijk Symfony 采用第一个匹配路线,但来自收集的路线。如果您在同一索引上定义路线,则只有最后一个可用。
    猜你喜欢
    • 2015-01-29
    • 1970-01-01
    • 2023-03-26
    • 2014-05-28
    • 1970-01-01
    • 2016-07-12
    • 2018-04-22
    • 2012-12-16
    • 2018-03-26
    相关资源
    最近更新 更多