在Symfony2中覆盖单个路由

时间:2012-11-07 13:10:26

标签: symfony routes

如何在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>

1 个答案:

答案 0 :(得分:13)

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

app/config/routing.yml

必须首先导入父路由,并且必须先导入子捆绑的路由。

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