为什么Symfony 5.1无法识别在“ routes.php”文件上配置的路由?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Symfony 5.1无法识别在“ routes.php”文件上配置的路由?相关的知识,希望对你有一定的参考价值。
我在使用Symfony 5.1中的config/routes.php
文件尝试配置路由时遇到了困难。
根据Symfony routing documentation,我应该能够在PHP文件中配置路由:
代替在控制器类中定义路由,您可以在单独的YAML,XML或PHP文件中定义它们。主要优点是它们不需要任何额外的依赖性。
但是实际上,如果我将路线放入文件routes.yaml
中,Symfony仅会识别路线。
在文件routes.php]中配置的路由>导致错误“找不到“ GET / something”的路由(找不到404)”。运行debug:router
时,未列出这些路由。
在routes.yaml
中配置时,相同的路由效果很好。
在使用Symfony 5.0.8
的另一个项目中,通过routes.php
进行的路由配置就像一个超级按钮一样工作。
这是我的测试方式:
创建了一个控制器(省略了,因为它不相关,所以任何控制器都可以做)
已创建
routes.php
文件:
//config/routes.php example
use App\Controller;
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
return function(RoutingConfigurator $routes)
$routes->add('schools_list', '/schools')
->controller([Controller\SchoolController::class, 'list'])
->methods(['GET']);
;
- 运行
debug:router
将导致:
---------------- -------- -------- ------ --------------------------
Name Method Scheme Host Path
---------------- -------- -------- ------ --------------------------
_preview_error ANY ANY ANY /_error/code._format
---------------- -------- -------- ------ --------------------------
- 在
routes.yaml
内部配置了相同的路由:
#config/routes.yaml
schools_list:
path: /schools
controller: App\Controller\SchoolController::list
methods: GET
- 运行
debug:router
将导致:
---------------- -------- -------- ------ --------------------------
Name Method Scheme Host Path
---------------- -------- -------- ------ --------------------------
_preview_error ANY ANY ANY /_error/code._format
schools_list GET ANY ANY /schools
---------------- -------- -------- ------ --------------------------
我很难用Symfony 5.1中的config / routes.php文件来配置我的路由。根据Symfony路由文档,我应该能够在PHP文件中配置路由:...
在Symfony <5.1上,默认的Kernel::configureRoutes()
看起来像this:
以上是关于为什么Symfony 5.1无法识别在“ routes.php”文件上配置的路由?的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 5.1:无法识别的字段:activation_token
无法使用 Symfony 5.1 创建数据库:找不到驱动程序 [关闭]
在Symfony 4中使用WebPack Encore定义后无法识别JavaScript对象