Il nome del percorso della pagina corrente è disponibile in page.html.twig
? La pagina è generata dal modulo di feedback predefinito.
Il nome del percorso della pagina corrente è disponibile in page.html.twig
? La pagina è generata dal modulo di feedback predefinito.
Risposte:
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']