Nhảy đến nội dung

[Thủ Thuật Drupal] Cách lấy path hiện tại và path alias trong Drupal

Nội Dung Bài Viết

Một số câu trả lời khác chỉ đúng trong các phiên bản Drupal 7 khi sử dụng drupal_get_path_alias(). Nhưng kể từ phiên bản Drupal 8 và 9 có có những thay đổi khác.

Đoạn snippet code bên dưới là cách giúp bạn lấy đầy đủ các Path trong Drupal 8 và Drupal 9.

Đây là code lây raw path không phải path alias

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

Để lấy được path alias

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

Còn một cách khác để lấy path alias

$url = \Drupal\Core\Url::fromRoute('<current>')->toString(); 

Nếu bạn muốn lấy full URL trong Drupal

$url = \Drupal\Core\Url::fromRoute('<current>',array(),array('absolute'=>'true'))->toString();

Nếu muốn lấy path trong Twig template 

//URL trang hiện tại
{{ url('<current>') }}

//Chỉ riêng Path
{{ path('<current>') }}