Der Routenname der aktuellen Seite ist in page.html.twig
? Verfügbar . Die Seite wird mit dem Standard-Feedback-Formular generiert.
Der Routenname der aktuellen Seite ist in page.html.twig
? Verfügbar . Die Seite wird mit dem Standard-Feedback-Formular generiert.
Antworten:
Verwenden Sie zum Abrufen des aktuellen Routennamens Folgendes:
$route_name = \Drupal::routeMatch()->getRouteName();
Sie können den Routennamen der aktuellen Seite als Variable in die ".theme" -Datei Ihres Themas einfügen. Fügen Sie eine _preprocess_page-Funktion wie diese hinzu und leeren Sie den Drupal-Cache.
/**
* Implements hook_preprocess_page().
*
*/
function mytheme_preprocess_page(&$variables) {
$variables['route_name'] = \Drupal::routeMatch()->getRouteName();
}
Dann können Sie in page.html.twig wie folgt zugreifen:
{{ route_name }}
Hinweis: \Drupal::routeMatch()->getRouteName()
Gibt manchmal null zurück.
Wenn Sie sich in einer Klasse befinden, sollten Sie den Routen-Match-Service in den Konstruktor einfügen und ihn dann folgendermaßen aufrufen, um die Dinge richtig zu machen:
$this->currentRouteMatch->getRouteName()
Der Konstruktor (und die Variable) sehen folgendermaßen aus:
/**
* The current route match.
*
* @var \Drupal\Core\Routing\RouteMatchInterface
*/
protected $currentRouteMatch;
/**
* Constructs a new ThemeTestSubscriber.
*
* @param \Drupal\Core\Routing\RouteMatchInterface $current_route_match
*/
public function __construct(RouteMatchInterface $current_route_match) {
$this->currentRouteMatch = $current_route_match;
}
Wenn es sich um eine Serviceklasse handelt, übergeben Sie sie in der yaml-Datei in Ihrem benutzerdefinierten Modul an den Service:
services:
mymodule.service:
class: Drupal\mymodule\MyCustomService
arguments: ['@current_route_match']