web-dev-qa-db-fra.com

Comment obtenir l'objet Route à partir d'un URI?

Si j'ai un objet Url, ou même une simple représentation sous forme de chaîne d'un chemin tel que /node/2, comment puis-je obtenir l'objet Route complet?

6
pfrenssen

Vous pouvez récupérer ces informations sur le routeur Symfony. Vous pouvez y accéder dans Drupal via le router.no_access_checks un service.

Si vous avez un chemin simple (notez que le chemin a une barre oblique):

$router = \Drupal::service('router.no_access_checks');
$result = $router->match('/node/2');

Si vous avez un objet Url:

$router = \Drupal::service('router.no_access_checks');
$result = $router->match($url->toString());

Cela renverra un tableau qui comprend l'objet route, ainsi que d'autres informations utiles telles que le nom de la route et les paramètres de la route, le contrôleur, le rappel de titre et même l'objet entité représenté par l'URL.

9
pfrenssen