我一直在关注 Symfony 官方网站上的指南,通过 bundle symfonycasts/verify-email-bundle 以及 make:user 和 make:registration_form 命令设置用户。
一切都很好,显示了 Symfony 默认页面,但是在指南中它在浏览器中显示“转到/注册”,当我这样做时,我得到了
找不到“GET https://localhost/register”的路由
清除缓存并检查路由后,我确实看到路由可用,当我使用“php bin/console router:match /register”发出路由匹配命令时,我得到以下输出:
[OK] Route "app_register" matches
+--------------+----------------------------------------------------------------+
| Property | Value |
+--------------+----------------------------------------------------------------+
| Route Name | app_register |
| Path | /register |
| Path Regex | {^/register$}sDu |
| Host | ANY |
| Host Regex | |
| Scheme | ANY |
| Method | GET|HEAD |
| Requirements | NO CUSTOM |
| Class | Symfony\Component\Routing\Route |
| Defaults | _controller: App\Controller\RegistrationController::register() |
| Options | compiler_class: Symfony\Component\Routing\RouteCompiler |
| | utf8: true |
+--------------+----------------------------------------------------------------+
所以,一切看起来都很好。附加说明...我使用的是 Symfony 6.0,以及带有属性的 PHP8,所以我的路由函数有这个标题:
#[Route(path: '/register', name: 'app_register', methods: ['GET', 'HEAD'])]
...但因为我没有得到任何地方,我也在我的 routes.yaml 文件中添加了这个
app_register:
path: /register
controller: App\Controller\RegistrationController::register
methods: ['GET', 'HEAD']
但是,尝试导航到该页面时仍然出现异常。我尝试在代码中切换到注释头,但仍然是同样的问题。
在我开始深入调试问题之前,我想知道是否有人有类似的问题或知道原因。
非常感谢您的帮助!