Mevcut sayfanın rota adı mevcuttur page.html.twig
? Sayfa, varsayılan geri bildirim formu tarafından oluşturulur.
Mevcut sayfanın rota adı mevcuttur page.html.twig
? Sayfa, varsayılan geri bildirim formu tarafından oluşturulur.
Yanıtlar:
Mevcut rota adını almak için şunu kullanın:
$route_name = \Drupal::routeMatch()->getRouteName();
Geçerli sayfanın rota adını temanın ".theme" dosyasında bir değişken olarak ekleyebilirsiniz. Böyle bir _preprocess_page işlevi ekleyin ve drupal önbelleğini temizleyin.
/**
* Implements hook_preprocess_page().
*
*/
function mytheme_preprocess_page(&$variables) {
$variables['route_name'] = \Drupal::routeMatch()->getRouteName();
}
Ardından, page.html.twig adresinde şöyle erişebilirsiniz:
{{ route_name }}
Not: \Drupal::routeMatch()->getRouteName()
bazen boş döndürür.
Bir sınıfın içindeyseniz, işleri doğru bir şekilde yapmak için, rota eşleme hizmetini kurucuya enjekte etmek ve ardından şu şekilde çağırmak istersiniz:
$this->currentRouteMatch->getRouteName()
Yapıcı (ve değişken) şöyle olacaktır:
/**
* 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;
}
Hizmet sınıfıysa, özel modülünüzdeki yaml dosyasındaki hizmete aktarırsınız:
services:
mymodule.service:
class: Drupal\mymodule\MyCustomService
arguments: ['@current_route_match']