it-swarm-ko.tech

현재 경로 별명 또는 경로를 얻으려면 어떻게합니까?

Drupal 8에서 현재 별칭 및/또는 경로를 얻으려면 어떻게해야합니까?

Drupal 7에서 drupal_get_path_alias() 으로이 작업을 수행했습니다. Drupal 8?

61
Yusef

다른 답변 중 일부는 이전 알파/베타 버전의 Drupal 8 동안 만 정확했거나 불완전한 것으로 보였습니다. 베타 7 기준 (및 희망적으로 영구적으로) 다음 규칙이 적용되어야합니다.

현재 raw path (별칭 화되지 않은 Drupal 경로)의 경우 :

$current_path = \Drupal::service('path.current')->getPath();

현재 URI 의 경우, 이는 요청을 직접적으로 표현한 것입니다 (쿼리 문자열을 포함 할 수도 있음).

$current_uri = \Drupal::request()->getRequestUri();

물론이 $current_uri value는 사용자가 요청한 항목 만 나타내므로 요청에 사용 가능한 경우에도 별칭을 제공합니다. 그래서 당신이 요구하는 것을 엄격히 수행하기 위해 (가능한 경우 별칭을 얻으십시오.

$current_path = \Drupal::service('path.current')->getPath();
$result = \Drupal::service('path.alias_manager')->getAliasByPath($current_path);

물론 처리 유형에 따라 경로 대신 경로로 작업하는 것이 가장 좋을 수도 있지만 다른 주제라고 생각합니다.

116
rjacobs

URL 별칭이없는 URL의 올바른 방법입니다.

$current_path = \Drupal::service('path.current')->getPath()
35
Daniel Wehner

Drupal 8에서 Twig 로이 작업을 수행 할 수 있습니다.

{{ url('<current>') }}

예:

<a href="{{ url('<current>') }}">{{ 'Reload'|t }}</a>

에서 : https://www.drupal.org/docs/8/theming/twig/functions-in-twig-templates

20
Nicola De Lazzari

Drupal 7에서 현재 경로를 얻으려면 current_path()을 사용하지만 Drupal 8에서는 $url = Url::fromRoute('<current>');.

출처 : https://www.drupal.org/node/2382211

16
Nitesh Sethia

현재 경로 (별칭 경로)를 가져 오려면 :

// Returns something like /about
$url = \Drupal\Core\Url::fromRoute('<current>');

현재 경로 (시스템 경로)를 가져 오려면 :

// Returns node/1
$path = $url->getInternalPath();
9
Rahul Baisane

경로 (Drupal 8)뿐만 아니라 전체 현재 URL을 얻으려면 이것이 내가 찾은 가장 깨끗한 솔루션입니다.

Url::fromRoute('<current>',array(),array('absolute'=>'true'))->toString();
8
crobicha

쿼리 문자열이있는 절대 URL을 원한다면 :

use Drupal\Core\Url;
// ...
Url::fromRoute('<current>', [], ['query' => \Drupal::request()->query->all(), 'absolute' => 'true'])->toString();
4
David Thomas

Twig 템플릿/Drupal 8 :

현재 페이지의 URL

{{ url('<current>') }}

만 PATH

{{ path('<current>') }}

참조 : https://www.drupal.org/docs/8/theming/twig/functions-in-twig-templates

3
elektrorl