Presupunând că lista conține căi precum /node/2, /user/1 sau admin/content și trebuie să obțineți numele rutei pentru acele căi gestionate de modulul Vizualizări, puteți utiliza cod similar cu următorul.
utilizați Drupal\Core\Path\PathValidatorInterface;
utilizați Drupal\Core\Url;
funcția _view_routes(matrice $cai) {
$view_routes = [];
$path_validator = \Drupal::service('path.validator');
foreach ($cai ca $cale) {
$view_route = '';
if ($url = $path_validator->getUrlIfValid($cale)) {
$nume_rută = $url->getRouteName();
if (strpos($nume_rută, „vizualizare”) === 0) {
$view_route = $nume_rută;
}
}
$view_routes[$cale] = $view_route;
}
returnează $view_routes;
}
PathValidator::getUrlIfValid()
întoarce a Url
obiect dacă calea pe care o primește ca argument este validă și accesibilă de la utilizatorul conectat în prezent. Pentru a înțelege ce căi sunt pentru paginile gestionate de modulul Vizualizări, indiferent de care utilizatorii au acces la pagina respectivă, codul ar trebui să fie similar cu următorul.
utilizați Symfony\Component\Routing\Matcher\RequestMatcherInterface;
funcția _view_routes(matrice $cai) {
$view_routes = [];
$router = \Drupal::service('router.no_access_checks');
foreach ($cai ca $cale) {
încerca {
$match = $router->match($cale);
}
captură (\Excepție $e) {
// Calea nu este validă sau metoda HTTP pentru a accesa
// calea nu este permisă.
$view_routes[$cale] = '';
continua;
}
$view_routes[$cale] = (strpos($match['_route'], 'view.') === 0 ? $match['_route'] : '');
}
returnează $view_routes;
}