drupal_get_title()
wurde aus Drupal 8 entfernt. Wie kann ich den Seitentitel in Drupal 8 erhalten?
drupal_get_title()
wurde aus Drupal 8 entfernt. Wie kann ich den Seitentitel in Drupal 8 erhalten?
Antworten:
Wenn Sie die Änderungsdatensätze überprüfen, sollten Sie Folgendes finden: drupal_set_title () und drupal_get_title () wurden entfernt .
Sie müssen den Änderungshinweis für alle Informationen lesen, aber hier ist ein Ausgangspunkt:
drupal_get_title ()
Da Titel auf Routen jetzt auf verschiedene Arten festgelegt werden können (siehe oben), wurde drupal_get_title () entfernt. An seiner Stelle sollten Sie den Dienst title_resolver aufrufen.
Drupal 7
<?php $title = drupal_get_title(); ?>
Drupal 8
<?php $request = \Drupal::request(); if ($route = $request->attributes->get(\Symfony\Cmf\Component\Routing\RouteObjectInterface::ROUTE_OBJECT)) { $title = \Drupal::service('title_resolver')->getTitle($request, $route); } ?>
Per batch_test.module
(D8.4) sollte folgende gut funktionieren:
$request = \Drupal::request();
$route_match = \Drupal::routeMatch();
$title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());
Weitere Informationen finden Sie unter public function TitleResolver::getTitle
.
Die akzeptierte Antwort auf diese Frage ist veraltet: Siehe Anforderungsparameter, Routenname und Routenobjekt sollten über RouteMatch abgerufen werden .
Sie sollten den Dienst current_route_match verwenden , um die aktuelle Route abzurufen und dann ihre Parameter zu lesen oder zu ändern. Dies umhüllt jede Symfony usw. Magie.
Im prozeduralen Code würden Sie Code verwenden, der dem folgenden ähnlich ist.
$route = \Drupal::routeMatch()->getCurrentRouteMatch()->getRouteObject();
$title = $route->getDefault('_title');
In objektorientiertem Code sollten Sie die Abhängigkeitsinjektion verwenden und den Dienst injizieren.
$route->getDefault('_title');
sondern nur eine gibt $route->getDefault('_title_callback');
?
Drupal 8
$request = \Drupal::request();
// Assuming the Request is $request.
if ($request->attributes->has('_title')) {
return $request->attributes->get('_title');
}
->get('_MAGIC')
Methode leider veraltet und größtenteils aus D8 entfernt ist: drupal.org/node/2124749