In Symfony application, each route is identified by the name, which can be used for generating URLs. If route name is not explicitly set, the name will be generated automatically.
This tutorial provides 2 methods how to get route name in Symfony 7 application.
Method 1 - Request object
The Request
object has route configuration which stored in the public attributes
property. It is an instance of ParameterBag
. We can use the get
method to retrieve route name from attributes
property by _route
key.
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class TestController
{
#[Route('/', name: 'test_index')]
public function index(Request $request): Response
{
$routeName = $request->attributes->get('_route');
return new Response($routeName); // Output: test_index
}
}
Method 2 - $_route parameter
If you need to get route name in a controller, you can use $_route
parameter.
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class TestController
{
#[Route('/', name: 'test_index')]
public function index(string $_route): Response
{
return new Response($_route); // Output: test_index
}
}
Leave a Comment
Cancel reply