📜  Drupal 获取当前路由名称 (1)

📅  最后修改于: 2023-12-03 15:14:48.407000             🧑  作者: Mango

Drupal 获取当前路由名称

在 Drupal 中,要获取当前页面的路由名称或路径别名,可以使用 CurrentRouteMatch 类。这个类提供了一些方法来获取当前页面的路由信息。

获取当前路由名称

要获取当前页面的路由名称,可以使用 getCurrentRouteMatch() 方法,然后使用 getRouteName() 方法获取路由名称。

$currentRouteMatch = \Drupal::service('current_route_match');
$routeName = $currentRouteMatch->getRouteName();
获取当前路由对象

如果需要更详细的路由信息,可以使用 getCurrentRoute() 方法获取当前路由对象,然后就可以获取路由的各种属性了。

$currentRoute = \Drupal::routeMatch()->getCurrentRoute();
$routeName = $currentRoute->getRouteName();
$defaults = $currentRoute->getDefaults();
$requirements = $currentRoute->getRequirements();
$options = $currentRoute->getOptions();
获取当前页面是否为特定路由

如果需要判断当前页面是否为特定路由,可以使用 RouteMatchInterface::getRouteMatch() 方法获取 RouteMatchInterface 对象,然后使用 RouteMatchInterface::getRouteName() 方法来判断。

$currentRouteMatch = \Drupal::routeMatch();
$isNodeRoute = $currentRouteMatch->getRouteName() == 'entity.node.canonical';
总结

使用 CurrentRouteMatch 类可以方便地获取当前页面的路由信息,包括路由名称、路由对象以及判断当前页面是否为特定路由。熟练掌握这些方法可以提高 Drupal 开发的效率。