Tengo un campo de enlace llamado field_my_link(nombre de la máquina).
Dentro de una plantilla Twig puedo obtener el valor de URL del enlace con esto:
{{ node.field_my_link.uri }}
Si dentro de la URL del enlace hay una URL externa , por ejemplo http://example.com, funciona bien.
Pero, si dentro de la URL del enlace se almacena una URL interna , por ejemplo "/node/11", obtengo un valor como este:
"internal:/node/11"
con el internal:prefijo " ".
¿Cómo puedo obtener la URL válida ?
Por ejemplo, si la URL del enlace es " http://example.com" Quiero " http://example.com" (esto ya funciona), si la URL del enlace es " /node/11" Quiero la URL relativa " /node/11", si la URL del enlace es " <front>" Quiero la URL " /", etc. .
EDITAR
Puedo obtener el valor que quiero dentro de una función de preproceso de PHP, usando esto:
$url = $variables['node']->get('field_my_link')->first()->getUrl();
¿Cómo puedo acceder al mismo valor dentro de la plantilla Twig?
Sé que puedo hacer esto dentro de la función de preproceso:
$variables['my_url'] = $url;
Luego acceda a la URL dentro de Twig usando {{ my_url }}, pero evitaría escribir una función de preproceso cada vez que tenga un campo de enlace.
node.field_my_link.uries como una url externahttp://www.example.com?