Symfony 5,路由匹配但未在 url 中找到

问题描述

你好,我的路由匹配,但在 url 示例中不起作用

https://localhost:8000/activate/?salt=606842b65dc19/20

我已经运行了 PHP bin/console cache:clear --env=dev --no-warmup 就像一个相关的问题,但仍然不起作用,我真的很想恢复盐分。

C:\RICSYMFONY\RIC>PHP bin/console router:match /activate/?salt=156116/8

 [OK] Route "app_activation" matches

+--------------+------------------------------------------------------------+
| Property     | Value                                                      |
+--------------+------------------------------------------------------------+
| Route Name   | app_activation                                             |
| Path         | /activate/{salt}/{id}                                      |
| Path Regex   | {^/activate/(?P<salt>[^/]++)/(?P<id>[^/]++)$}sDu           |
| Host         | ANY                                                        |
| Host Regex   |                                                            |
| Scheme       | ANY                                                        |
| Method       | ANY                                                        |
| Requirements | NO CUSTOM                                                  |
| Class        | Symfony\Component\Routing\Route                            |
| Defaults     | _controller: App\Controller\SecurityController::activate() |
| Options      | compiler_class: Symfony\Component\Routing\RouteCompiler    |
|              | utf8: true                                                 |
+--------------+------------------------------------------------------------+

   /**
     * @Route("/activate/{salt}/{id}",name="app_activation")
     */
    public function activate (Personne $personne){
       $salt= $_GET["salt"];
    ...
    }

我的错误

ResourceNotFoundException  NotFoundHttpException
HTTP 404 Not Found
No route found for "GET /activate/"

解决方法

我在研究电机时发现了如何做,我终于这样做了,并且可以使用可选的 -- {id} -->Personne --- 来完成工作,以免找不到它。

   /**
     * @Route("/activate/{salt}/{id}",name="app_activation")
     */
    public function activate ($salt,? Personne $personne){
         $salt
    ....
    }