J'ai un objet nœud, et j'essaie de l'utiliser pour obtenir un chemin donné dans Drupal 8.
Il y en avait drupal_lookup_path()
dans Drupal 7 mais je ne vois aucun équivalent ou documentation pour Drupal 8.
Quelle est la nouvelle façon "Drupal" d'obtenir un chemin à partir d'un objet nœud?
Serait-ce quelque chose de simple comme $node->get('path')
?
Cela semble être une question simple, mais je ne trouve absolument aucune documentation à ce sujet.
Remarquez que je ne veux pas l'alias de chemin pour le chemin actuel; Je veux l'alias de chemin pour un nœud arbitraire, étant donné un objet de nœud ou un ID de nœud.
8
nodes
path-aliases
Jack Ryan
la source
la source
Réponses:
Pour obtenir le chemin d'accès d'un identifiant de nœud, utilisez AliasManager :: getAliasByPath :
la source
Qu'en est-il de l'utilisation de l' URL :
la source
Url
objet directement sous$node->toUrl()
.Si vous n'avez que le nid, la solution de 4k4 de
Fonctionne très bien. Mais si vous avez déjà un objet nœud, vous pouvez ignorer une étape ou deux. Les nœuds ont en fait des méthodes intégrées pour obtenir des URL.
Renverrait l'URL aliasée du nœud.
toUrl () renvoie un objet url. Voir ici https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Url.php/class/Url/8.2.x
et toString () est une méthode de l'objet url qui renvoie la représentation sous forme de chaîne de l'url.
la source
$node->toUrl()->setAbsolute()->toString()
cela renverra l'URL absolue, utile pour le partage, etc.Vous pouvez également utiliser la méthode de chargement de
path.alias_storage
pour renvoyer un tableau des détails d'alias ou booléen false si aucun chemin n'a été trouvé pour ce nœud.$aliasArray = \Drupal::service('path.alias_storage')->load(['source' => '/node/' . $nid]);
la source
Meilleure façon d'obtenir l'URL du nœud à partir de l'objet nœud-
Il gérera également le langage du nœud.
la source
Si vous voulez obtenir l'url d'alias de noeud par langues, n'oubliez pas d'utiliser la langue comme celle-ci.
Si vous l'utilisez dans une classe n'oubliez pas d'utiliser correctement l'injection de dépendances.
la source
J'espérais une solution plus "Drupalesque", mais voici ce que je me suis fait pour faire le boulot:
la source