1

所以首先 TL:DR - Symfony 没有在我的包中获取额外的路由文件。不知道为什么。尝试像在 config.yml 中那样进行导入,但它也不起作用

我有多个控制器来维护我的代码。即所有与站点相关的操作都在一个 SiteController 中,所有与应用程序相关的操作都在一个 AppController 中,等等。

所以我想我会制作路由文件以与我的控制器相对应。这些文件位于 MyBundle/Resources/config 中。问题是当我执行 php app/console router:debug 时它们没有被拾取。所以我想,好吧,我将它们导入到 symfony 在 generate:bundle 过程中生成的 routing_mybundle.yml 文件中。所以我做了以下事情:

imports:
    - { resource: routing_site.yml }
    - { resource: routing_app.yml }

我收到一条错误消息,上面写着:

routing_mybundle.yml 包含“import”不受支持的键:“0”、“1”。预期之一:“resource”、“type”、“prefix”、“pattern”、“path”、“host”、“schemes”、“methods”、“defaults”、“requirements”、“options”。

我意识到它正在寻找特定的键,但我不确定为什么它会在 config.yml 而不是在 routing.yml 文件中工作。

如果我执行以下操作,它会起作用:

imports:
    resource: routing_site.yml

或者,如果我在它工作的文件中“链接”导入。所以我的意思是我将routing_app导入routing_site,将routing_site导入routing_mybundle。

任何人都知道如何让导入标签工作,或者如何让 symfony 接收我的 routing_ * *.yml 文件?

谢谢 :)

编辑:

感谢遗忘的回答。对于那些和我有同样问题的人(同一个包中的多个配置文件),这是我在 myBundle/Resources/config 中的 routing.yml 文件中必须做的事情

我的目录结构看起来像

MyBundle/
    Resources/
        config/
            routing.yml
            routing_site.yml
            routing_app.yml

所以我不得不做以下事情

SiteController:
    resource: routing_site.yml

AppController:
    resource: routing_app.yml

再次感谢

4

1 回答 1

2

您可以通过这种方式导入路由文件

路由.yml

SiteBundle:
    resource: "@SiteBundle/Resources/config/routing_site.yml"

AppBundle:
    resource: "@AppBundle/Resources/config/routing_app.yml"

FOSUserBundle也这样做。

于 2013-07-13T08:24:50.807 回答