Drupal 8] 'deki mevcut takma adı ve/veya yolu nasıl alabilirim?
Drupal 7 Bunu drupal_get_path_alias()
ile yaptım. Drupal 8?
Diğer cevapların bazıları sadece Drupal 8 'ın önceki alfa/beta sürümlerinde doğruydu veya eksik görünüyordu. Beta7 itibariyle (ve umarım kalıcı olarak) aşağıdaki kurallar geçerli olmalıdır:
Geçerli ham yol (takma adsız Drupal yol):
$current_path = \Drupal::service('path.current')->getPath();
Geçerli URI için, isteğin hemen hemen doğrudan bir temsili (hatta bir sorgu dizesi içerebilir):
$current_uri = \Drupal::request()->getRequestUri();
Elbette bunun $current_uri
değeri, yalnızca kullanıcının ne istediğini temsil ettiğinden, istek için kullanılabilir olsa bile size bir takma ad verir. Yani kesinlikle sorduğunuz şeyi yapmak (varsa takma ad ve değilse yolu almak) Ben yapabileceğini düşünüyorum:
$current_path = \Drupal::service('path.current')->getPath();
$result = \Drupal::service('path.alias_manager')->getAliasByPath($current_path);
Tabii ki yaptığınız işlem türüne bağlı olarak, yollar yerine rotalarla çalışmak en iyisi olabilir, ancak sanırım bu tamamen başka bir konudur.
URL takma adı olmayan URL için uygun yol.
$current_path = \Drupal::service('path.current')->getPath()
Drupal 8 bölümünde bunu Twig ile yapabilirsiniz:
{{ url('<current>') }}
misal:
<a href="{{ url('<current>') }}">{{ 'Reload'|t }}</a>
from: https://www.drupal.org/docs/8/theming/twig/functions-in-twig-templates
Drupal 7 içindeki geçerli yolu almak için current_path()
, ancak Drupal 8] içinde $url = Url::fromRoute('<current>');
kullanırsınız .
Geçerli yolu (takma yol) almak için:
// Returns something like /about
$url = \Drupal\Core\Url::fromRoute('<current>');
Geçerli yolu (sistem yolu) almak için:
// Returns node/1
$path = $url->getInternalPath();
Tam yol URL'sini almak için sadece yol değil (Drupal 8), bulabildiğim en temiz çözüm:
Url::fromRoute('<current>',array(),array('absolute'=>'true'))->toString();
Sorgu dizesi ile de mutlak URL istiyorsanız:
use Drupal\Core\Url;
// ...
Url::fromRoute('<current>', [], ['query' => \Drupal::request()->query->all(), 'absolute' => 'true'])->toString();
Twig şablon/Drupal 8:
Geçerli sayfanın URL'si
{{ url('<current>') }}
sadece PATH
{{ path('<current>') }}
Bakınız: https://www.drupal.org/docs/8/theming/twig/functions-in-twig-templates