如何在 Symfony 5 的控制器中获取当前路由的名称?当我尝试这个时,我得到 NULL:
$this->Request = Request::createFromGlobals();
$route = $this->Request->attributes->get('_route');
var_dump($route);
Run Code Online (Sandbox Code Playgroud)
不建议在控制器内创建请求。获取已创建请求的首选方式是 DI 和自动装配:
// src/Controller/BlogController.php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class BlogController extends AbstractController
{
/**
* @Route("/blog", name="blog_list")
*/
public function list(Request $request)
{
$routeName = $request->attributes->get('_route');
$routeParameters = $request->attributes->get('_route_params');
var_dump($routeName);
}
}
Run Code Online (Sandbox Code Playgroud)
该请求由 Symfony HttpKernel 处理并填充附加信息。
更多信息:https://symfony.com/doc/current/routing.html#getting-the-route-name-and-parameters
| 归档时间: |
|
| 查看次数: |
6606 次 |
| 最近记录: |