问题描述
你好,我的路由匹配,但在 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
....
}