gpt4 book ai didi

Controller 中的 Symfony 5 路由名称

转载 作者:行者123 更新时间:2023-12-02 02:40:22 25 4
gpt4 key购买 nike

如何在 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

它是如何到达那里的:https://github.com/symfony/symfony/blob/b2609c4bae69ca383b97cb520da2ed9be1c48449/src/Symfony/Component/Routing/Matcher/UrlMatcher.php#L217

关于 Controller 中的 Symfony 5 路由名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63723642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com