Nazwa trasy bieżącej strony jest dostępna w page.html.twig
? Strona jest generowana przez domyślny formularz opinii.
Nazwa trasy bieżącej strony jest dostępna w page.html.twig
? Strona jest generowana przez domyślny formularz opinii.
Odpowiedzi:
Aby uzyskać bieżącą nazwę trasy, użyj:
$route_name = \Drupal::routeMatch()->getRouteName();
Możesz dodać nazwę trasy bieżącej strony jako zmienną w pliku „.theme” motywu. Dodaj funkcję _preprocess_page w ten sposób i wyczyść pamięć podręczną drupal.
/**
* Implements hook_preprocess_page().
*
*/
function mytheme_preprocess_page(&$variables) {
$variables['route_name'] = \Drupal::routeMatch()->getRouteName();
}
Następnie możesz uzyskać dostęp do page.html.twig w następujący sposób:
{{ route_name }}
Uwaga: \Drupal::routeMatch()->getRouteName()
czasami zwraca wartość null.
Jeśli jesteś w klasie, aby robić wszystko poprawnie, musisz wstrzyknąć konstruktorowi usługę dopasowania trasy, a następnie wywołać ją w ten sposób:
$this->currentRouteMatch->getRouteName()
Konstruktor (i zmienna) będzie taki:
/**
* 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;
}
Jeśli jest to klasa usługi, możesz przekazać ją do usługi w pliku yaml w niestandardowym module:
services:
mymodule.service:
class: Drupal\mymodule\MyCustomService
arguments: ['@current_route_match']