Giả sử danh sách chứa các đường dẫn như/nút/2,/người dùng/1 hoặc quản trị viên/nội dung và bạn cần lấy tên tuyến đường cho những đường dẫn đó do mô-đun Chế độ xem xử lý, bạn có thể sử dụng mã tương tự như mã sau.
sử dụng Drupal\Core\Path\PathValidatorInterface;
sử dụng Drupal\Core\Url;
hàm _view_routes(mảng $path) {
$view_routes = [];
$path_validator = \Drupal::service('path.validator');
foreach ($paths as $path) {
$view_route = '';
if ($url = $path_validator->getUrlIfValid($path)) {
$route_name = $url->getRouteName();
if (strpos($route_name, 'view.') === 0) {
$view_route = $route_name;
}
}
$view_routes[$path] = $view_route;
}
trả về $view_routes;
}
PathValidator::getUrlIfValid()
trả về một url
đối tượng nếu đường dẫn mà nó nhận làm đối số là hợp lệ và có thể truy cập được từ người dùng hiện đang đăng nhập. Để hiểu đường dẫn nào dành cho các trang được xử lý bởi mô-đun Chế độ xem, độc lập với người dùng có quyền truy cập vào trang đó, mã phải tương tự như mã sau.
sử dụng Symfony\Component\Routing\Matcher\RequestMatcherInterface;
hàm _view_routes(mảng $path) {
$view_routes = [];
$router = \Drupal::service('router.no_access_checks');
foreach ($paths as $path) {
cố gắng {
$match = $router->match($path);
}
bắt (\Ngoại lệ $e) {
// Đường dẫn không hợp lệ hoặc phương thức HTTP để truy cập
// đường dẫn không được phép.
$view_routes[$path] = '';
tiếp tục;
}
$view_routes[$path] = (strpos($match['_route'], 'view.') === 0 ? $match['_route'] : '');
}
trả về $view_routes;
}