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.uri
es como una url externahttp://www.example.com
?