Ich habe ein Node-Objekt und versuche es zu verwenden, um einen bestimmten Pfad in Drupal 8 zu erhalten.
Es gab drupal_lookup_path()
in Drupal 7, aber ich sehe keine Entsprechung oder Dokumentation für Drupal 8.
Was ist die neue "Drupal" -Methode, um einen Pfad von einem Knotenobjekt abzurufen?
Wäre es so einfach $node->get('path')
?
Dies scheint eine einfache Frage zu sein, aber ich finde absolut keine Dokumentation dazu.
Beachten Sie, dass ich keinen Pfadalias für den aktuellen Pfad möchte. Ich möchte den Pfad-Alias für einen beliebigen Knoten, der ein Knotenobjekt oder eine Knoten-ID hat.
8
nodes
path-aliases
Jack Ryan
quelle
quelle
Antworten:
Verwenden Sie AliasManager :: getAliasByPath, um den Pfad für eine Knoten-ID abzurufen :
quelle
Was ist mit der Verwendung von URL :
quelle
Url
Objekt auch direkt als erhalten$node->toUrl()
.Wenn Sie nur die NID haben, ist 4k4 die Lösung von
Funktioniert super. Wenn Sie jedoch bereits ein Knotenobjekt haben, können Sie ein oder zwei Schritte überspringen. Die Knoten verfügen über integrierte Methoden zum Abrufen von URLs.
Gibt die Alias-URL des Knotens zurück.
toUrl () gibt ein URL-Objekt zurück. Siehe hier https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Url.php/class/Url/8.2.x
und toString () ist eine Methode des URL-Objekts, die die Zeichenfolgendarstellung der URL zurückgibt.
quelle
$node->toUrl()->setAbsolute()->toString()
die absolute URL zurückgegeben wird, die für das Teilen usw. nützlich ist.Sie können auch die load-Methode von verwenden
path.alias_storage
, um ein Array der Alias-Details oder den booleschen Wert false zurückzugeben, wenn für diesen Knoten kein Pfad gefunden wurde.$aliasArray = \Drupal::service('path.alias_storage')->load(['source' => '/node/' . $nid]);
quelle
Der beste Weg, um eine Knoten-URL von einem Knotenobjekt zu erhalten -
Es wird auch die Knotensprache behandeln.
quelle
Wenn Sie die Node-Alias-URL nach Sprachen erhalten möchten, vergessen Sie nicht, diese Sprache zu verwenden.
Wenn Sie es in einer Klasse verwenden, vergessen Sie nicht, die Abhängigkeitsinjektion korrekt zu verwenden.
quelle
Ich hatte auf eine "Drupalesque" -Lösung gehofft, aber Folgendes habe ich mir vorgenommen, um diesen Job zu erledigen:
quelle