Url
オブジェクト、または/node/2
などのパスの単純な文字列表現さえある場合、完全なRoute
オブジェクトを取得するにはどうすればよいですか?
この情報はSymfonyルーターから取得できます。これには、Drupalでrouter.no_access_checks
サービスを通じてアクセスできます。
単純なパスがある場合(パスの先頭にスラッシュがあることに注意してください):
$router = \Drupal::service('router.no_access_checks');
$result = $router->match('/node/2');
Url
オブジェクトがある場合:
$router = \Drupal::service('router.no_access_checks');
$result = $router->match($url->toString());
これは、ルートオブジェクトと、ルート名やルートパラメータ、コントローラ、タイトルコールバック、さらにURLで表されるエンティティオブジェクトなどのその他の有用な情報を含む配列を返します。