O nome da rota da página atual está disponível em page.html.twig
? A página é gerada pelo formulário de feedback padrão.
O nome da rota da página atual está disponível em page.html.twig
? A página é gerada pelo formulário de feedback padrão.
Respostas:
Para obter o nome da rota atual, use:
$route_name = \Drupal::routeMatch()->getRouteName();
Você pode adicionar o nome da rota da página atual como uma variável no arquivo ".theme" do seu tema. Adicione uma função _preprocess_page como esta e limpe o cache do drupal.
/**
* Implements hook_preprocess_page().
*
*/
function mytheme_preprocess_page(&$variables) {
$variables['route_name'] = \Drupal::routeMatch()->getRouteName();
}
Então você pode acessar em page.html.twig assim:
{{ route_name }}
Nota: \Drupal::routeMatch()->getRouteName()
às vezes retornará nulo.
Se você estiver dentro de uma classe, para fazer as coisas corretamente, você desejará injetar o serviço de correspondência de rota no construtor e depois chamar da seguinte maneira:
$this->currentRouteMatch->getRouteName()
O construtor (e variável) será assim:
/**
* 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 for uma classe de serviço, você a passará para o serviço no arquivo yaml em seu módulo personalizado:
services:
mymodule.service:
class: Drupal\mymodule\MyCustomService
arguments: ['@current_route_match']