In Symfony application, routes can be defined with dynamic URL which contains parameters. Parameters are wrapped in curly brackets {param_name}
and they must have a unique name.
This tutorial provides 2 methods how to get route parameters in Symfony 7 application.
Method 1 - Request object
The Request
object contains route configuration which stored in the public attributes
property. It is an instance of ParameterBag
. The get
method can be used to retrieve route parameters from attributes
property by _route_params
key.
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class TestController
{
#[Route('/{page}')]
public function index(Request $request): Response
{
$routeParams = $request->attributes->get('_route_params');
return new Response($routeParams['page']); // If http://localhost/5 then output: 5
}
}
Method 2 – $_route_params parameter
We can use $_route_params
parameter in a controller to get route parameters.
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class TestController
{
#[Route('/{page}')]
public function index(array $_route_params): Response
{
return new Response($_route_params['page']); // If http://localhost/5 then output: 5
}
}
The 1 Comment Found
Thanks for this - it's take a couple of days of trial and error to finally find "array $_route_params"
Leave a Comment
Cancel reply