📅  最后修改于: 2023-12-03 15:30:34.341000             🧑  作者: Mango
在 Drupal 8 中,我们可以通过路由系统来定义和获取页面的 URL。在主题开发中,获取页面路由是非常重要的一步,因为它可以让我们获取当前页面的信息,从而帮助我们实现一些自定义的功能。本文将介绍如何在 Drupal 8 中获取页面路由。
要获取当前页面的路由对象,我们需要使用 Drupal\Core\Routing\RouteMatch 对象。该对象代表了当前请求的路由信息,包含了页面的路由和页面参数等信息。
// Get the current route match object.
$route_match = \Drupal::routeMatch();
要获取当前页面的路由名称,我们可以使用 $route_match 对象的 getRouteName() 方法。
// Get the current route name.
$route_name = $route_match->getRouteName();
要获取当前页面的路由参数,我们可以使用 $route_match 对象的 getParameters() 方法。该方法将返回一个参数数组,其中键表示参数名称,值表示参数值。
// Get the current route parameters.
$route_parameters = $route_match->getParameters();
如果我们知道路由的名称,我们也可以直接获取该路由的对象。可以使用 Drupal\Core\Routing\RouteProvider 对象的 getRouteByName() 方法来获取路由对象。
// Get the route object by name.
$route_object = \Drupal::routeMatch()->getRouteProvider()->getRouteByName($route_name);
要获取当前页面的路径,我们可以使用 $route_match 对象的 getRouteObject() 方法,从而获得路由对象。然后,我们可以使用该对象的 getPath() 方法来获取路径。
// Get the current page path.
$path = \Drupal::routeMatch()->getRouteObject()->getPath();
获取页面路由是 Drupal 8 主题开发中非常基础的一步。通过本文的介绍,我们了解了如何获取当前页面的路由对象、路由名称、路由参数以及页面路径等信息。希望这篇文章对读者有所帮助。