Saltar al contenido

Drupal: ¿cómo obtengo el alias o la ruta actual?

Posterior a de nuestra extensa compilación de información hemos podido solucionar esta duda que suelen tener muchos de nuestros lectores. Te ofrecemos la solución y nuestro objetivo es que resulte de mucha ayuda.

Solución:

Algunas de las otras respuestas solo eran correctas durante las versiones alfa/beta anteriores de Drupal 8, o parecía estar incompleto. A partir de beta7 (y con suerte de forma permanente), se deben aplicar las siguientes reglas:

Para el crudo actual sendero (el sin alias Drupal sendero):

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

para el actual URIque es más o menos una representación directa de la solicitud (incluso puede incluir una consulta string):

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

Por supuesto, no hay garantía de que esto $current_uri value le dará un alias, incluso si hay uno disponible para la solicitud, ya que solo representa lo que el usuario ha solicitado. Entonces, para hacer estrictamente lo que está preguntando (obtener alias si está disponible y ruta si no), creo que podría hacer:

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

Por supuesto, dependiendo del tipo de procesamiento que esté haciendo, puede ser mejor trabajar con rutas en lugar de caminos, pero supongo que ese es otro tema.

La forma correcta de la URL sin el alias de la URL.

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

En Drupal 8 puedes hacer esto con Twig:

 url('') 

ejemplo:

') ">t 

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

Puntuaciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *