如何在 Symfony 5 的 Controller 中获取当前路由的名称? 当我尝试这个时,我得到 NULL:
$this->Request = Request::createFromGlobals();
$route = $this->Request->attributes->get('_route');
var_dump($route);
最佳答案
不建议在您的 Controller 中创建请求。 获取已创建请求的首选方式是 DI 和 Autowiring :
// 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);
}
}
此请求由 Symfony HttpKernel 处理并填充了附加信息。
更多信息:https://symfony.com/doc/current/routing.html#getting-the-route-name-and-parameters
关于 Controller 中的 Symfony 5 路由名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63723642/