it-swarm-ko.tech

NID (또는 노드 객체)에서 경로 별칭 가져 오기

노드 객체가 있는데 Drupal 8에서 주어진 경로를 얻는 데 사용하려고합니다.

Drupal 7에 drupal_lookup_path()_이 (가) 있지만 Drupal 8에 해당하는 문서 나 문서가 보이지 않습니다.).

노드 객체로부터 경로를 얻는 새로운 "Drupal"방법은 무엇입니까?

$node->get('path')과 같은 간단한 것입니까?

이것은 간단한 질문처럼 보이지만 절대 그에 대한 문서를 찾지 못했습니다.

현재 경로의 경로 별칭을 원하지 않습니다. 노드 객체 또는 노드 ID가 주어지면 임의의 노드에 대한 경로 별명을 원합니다.

27
Jack Ryan

노드 ID의 경로를 얻으려면 AliasManager :: getAliasByPath 를 사용하십시오.

$alias = \Drupal::service('path.alias_manager')->getAliasByPath('/node/'.$nid);
54
4k4

rl 을 사용하는 것은 어떻습니까 :

use Drupal\Core\Url;    

...

$url = Url::fromRoute('entity.node.canonical', ['node' => $nid])->toString();
20
Kevin

당신이 nid, 4k4의 해결책 만 가지고 있다면

$alias = \Drupal::service('path.alias_manager')->getAliasByPath('/node/'.$nid);

잘 작동합니다. 그러나 이미 노드 개체가있는 경우 한두 단계를 건너 뛸 수 있습니다. 노드에는 실제로 URL을 가져 오는 메소드가 내장되어 있습니다.

$node->toUrl()->toString();

노드의 별칭을 반환합니다.

toUrl ()은 url 객체를 반환합니다. 여기를 참조하십시오 https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Url.php/class/Url/8.2.x

toString ()은 url의 문자열 표현을 반환하는 url 객체의 메서드입니다.

16
Matt

노드 객체에서 노드 URL을 얻는 가장 좋은 방법

  • 절대 경로 : $ node-> toUrl ()-> setAbsolute ()-> toString ();
  • 상대 경로 : $ node-> toUrl ()-> toString ();

또한 노드 언어를 처리합니다.

3
Prem Patel

path.alias_storage의 load 메소드를 사용하여 별칭 세부 정보의 배열을 반환하거나 해당 노드에 대한 경로가 없으면 부울 false를 반환 할 수 있습니다.

$aliasArray = \Drupal::service('path.alias_storage')->load(['source' => '/node/' . $nid]);

2
rchaplin

languages로 노드 별칭 URL을 얻으려면 이와 같은 언어를 사용하는 것을 잊지 마십시오.

$alias_url = \Drupal::service('path.alias_manager')->getAliasByPath('/node/'. $nid, $langcode);

클래스에서 사용하는 경우 종속성 주입을 올바르게 사용하는 것을 잊지 마십시오.

1
Diosbel Mezquía