[Symfony] Récupérer les paramètres de la route courante
Publié le 11/12/2018 • Mis à jour le 11/12/2018
Ce sont deux variables magiques qui sont disponibles dans les actions des contrôleurs. On peut soit les déclarer en tant que paramètres de la fonction, soit les récupérer à partir des attributs de la requête. ($request->attributes->get()
) Je m'en sers régulièrement, notamment pour générer des fils d'Arianne. Petit fait amusant, si on passe $_route_params
en tant que paramètre de fonction, PHP_CodeSniffer lève une erreur :
54 | ERROR | [ ] Variable "_route_params" is not in valid camel caps format
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
use Symfony\Component\HttpFoundation\Request;
/**
* J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
* Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
* ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Les services sont injectés dans le constructeur du contrôleur principal.
*/
trait Snippet9Trait
{
public function snippet9(Request $request): void
{
$route = $request->attributes->get('_route');
$params = $request->attributes->get('_route_params');
// Or you can use TypeHint directly in your controller function
// public function snippet9(string $_route, array $_route_params)
echo $route.PHP_EOL;
print_r($params); // That's it! 😁
}
}
Exécuter le snippet Plus sur Stackoverflow Snippet aléatoire