Symfony4捆绑的外部路由

时间:2017-12-27 09:36:16

标签: symfony symfony4

您好我从2.7迁移到symfony4。我确实有几个捆绑,我按照说明操作:https://symfony.com/doc/current/routing/external_resources.html

我的config / bundle.php:

...
App\Frontend\MainBundle\FrontendMainBundle::class => ['all' => true],
...

我的配置/ routes.yaml:

frontend_main:
    resource: "@AppFrontendMainBundle/Resources/config/routing.frontend.main.yml"
               #also tried here without App

我收到了一条消息:

“frontend_main”下无法识别的选项“资源”。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

在具有Flex目录结构的Symfony 4中,默认路由文件称为config/routes.yaml,而不是routing.yaml。您确定文件是作为路由的一部分加载而不是作为服务配置加载吗?

您应该在src/Kernel.php中检查路由配置内核。默认情况下,它看起来像这样:

protected function configureRoutes(RouteCollectionBuilder $routes)
{
    $confDir = $this->getProjectDir().'/config';
    if (is_dir($confDir.'/routes/')) {
        $routes->import($confDir.'/routes/*'.self::CONFIG_EXTS, '/', 'glob');
    }
    if (is_dir($confDir.'/routes/'.$this->environment)) {
        $routes->import($confDir.'/routes/'.$this->environment.'/**/*'.self::CONFIG_EXTS, '/', 'glob');
    }
    $routes->import($confDir.'/routes'.self::CONFIG_EXTS, '/', 'glob');
}

如果您想保留文件名,可以重命名最后一次导入(或添加另一次导入):

$routes->import($confDir.'/routing'.self::CONFIG_EXTS, '/', 'glob');