嗨我从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”。
我做错了什么?
在具有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');