Eu tenho um objeto de nó e estou tentando usá-lo para obter um determinado caminho no Drupal 8.
Havia drupal_lookup_path()
no Drupal 7, mas não estou vendo nenhum equivalente ou documentação para o Drupal 8.
Qual é a nova maneira "Drupal" de obter um caminho de um objeto de nó?
Seria algo simples como $node->get('path')
?
Parece uma pergunta simples, mas simplesmente não estou encontrando nenhuma documentação.
Observe que não quero o alias do caminho para o caminho atual; Eu quero o alias do caminho para um nó arbitrário, dado um objeto ou um ID do nó.
8
nodes
path-aliases
Jack Ryan
fonte
fonte
Respostas:
Para obter o caminho para uma identificação de nó, use AliasManager :: getAliasByPath :
fonte
Que tal usar o URL :
fonte
Url
objeto diretamente como$node->toUrl()
.Se você tiver apenas o nid, a solução de 4k4 de
Funciona bem. Mas se você já possui um objeto de nó, pode pular uma etapa ou duas. Nós realmente criamos métodos para obter URLs.
Retornaria o URL com alias do nó.
toUrl () retorna um objeto de URL. Veja aqui https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Url.php/class/Url/8.2.x
e toString () é um método do objeto url que retorna a representação de string do URL.
fonte
$node->toUrl()->setAbsolute()->toString()
retornará a URL absoluta, útil para compartilhar etc.Você também pode usar o método load de
path.alias_storage
para retornar uma matriz dos detalhes do alias ou boolean false se não houver um caminho encontrado para esse nó.$aliasArray = \Drupal::service('path.alias_storage')->load(['source' => '/node/' . $nid]);
fonte
A melhor maneira de obter o URL do nó a partir do objeto
Ele também manipulará a linguagem do nó.
fonte
Se você deseja obter o URL de alias do nó por idiomas, não se esqueça de usar o idioma como este.
Se você o estiver usando em uma classe, não se esqueça de usar a injeção de dependências corretamente.
fonte
Eu esperava uma solução mais "drupalesca", mas eis o que eu me obriguei a fazer o trabalho:
fonte