Symfony4捆绑的外部路由

问题描述 投票:0回答:1

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

我的config / bundle.php:

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

我的config / routes.yaml:

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

我收到一条消息:

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

我做错了什么?

symfony symfony4
1个回答
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');
© www.soinside.com 2019 - 2024. All rights reserved.