Ottieni il nome del percorso della pagina corrente


24

Il nome del percorso della pagina corrente è disponibile in page.html.twig? La pagina è generata dal modulo di feedback predefinito.

Risposte:


57

Per ottenere il nome del percorso corrente, utilizzare:

$route_name = \Drupal::routeMatch()->getRouteName();

Puoi aggiungere il nome del percorso della pagina corrente come variabile nel file ".theme" del tuo tema. Aggiungi una funzione _preprocess_page come questa e svuota la cache di drupal.

/**
 * Implements hook_preprocess_page().
 *
 */
function mytheme_preprocess_page(&$variables) {
  $variables['route_name'] = \Drupal::routeMatch()->getRouteName();
}

Quindi puoi accedere a page.html.twig in questo modo:

{{ route_name }}

Nota: \Drupal::routeMatch()->getRouteName() a volte restituisce null.

Se sei all'interno di una classe, per fare le cose correttamente, ti consigliamo di iniettare il servizio di corrispondenza del percorso nel costruttore e quindi chiamarlo in questo modo:

$this->currentRouteMatch->getRouteName()

Il costruttore (e la variabile) sarà così:

  /**
   * 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;
  }

Se è una classe di servizio, la passeresti al servizio nel file yaml nel tuo modulo personalizzato:

services:
  mymodule.service:
    class: Drupal\mymodule\MyCustomService
    arguments: ['@current_route_match']

C'è un CLI (comando in modalità linea) da qualche parte che mostra tutte le rotte del drupal ... non riesco a ricordare cosa fosse ... Aggiornerò (a meno che qualcun altro non lo sappia)
sea26.2
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.