Saltar al contenido

Drupal: ¿Cómo obtener la URL válida de un campo de enlace desde una plantilla de Twig?

Solución:

Su PHP de su última edición se traduciría en una ramita como esta:

{{ node.field_my_link.0.url }}

Esto funciona así, 0 devuelve el primer elemento de la lista de elementos de campo, url obtiene el objeto url y debido a que twig lanzará este objeto como una cadena, llamará al método mágico toString () y generará la url como un valor de cadena.

Solo necesitas usar url, porque twig busca automáticamente el método getxyz() si no hay propiedad con ese nombre xyz.

Puede acceder al elemento de matriz de renderizado directamente, en su caso:

{{ node.field_my_link[0]['#url'] }}

Tienes que cubrir ambos casos: URL externas e internas.

Primero, verifiquemos si la URL es externo y simplemente imprime su *.uri.

De lo contrario, si es interno tenemos que cablear su nombre de ruta y parámetros a través de Drupal path($name, $parameters, $options) función.

{% if node.field_link.0.url.external %}
  <a href="https://foroayuda.es/{{ node.field_link.uri }}">
    {{ node.field_link.title }}
  </a>
{% else %}
  <a href="{{ path(node.field_link.0.url.routeName, node.field_link.0.url.routeParameters) }}">
    {{ node.field_link.title }}
  </a>
{% endif %}
¡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 *