I have a Link field named field_my_link
(machine name).
Within a Twig template I can get the link’s URL value with this:
{{ node.field_my_link.uri }}
If inside the Link’s URL there is an external URL, e.g. http://example.com
it works good.
But, if inside the Link’s URL there is stored an internal URL, e.g. "/node/11"
, I get a value like this:
"internal:/node/11"
with the “internal:
” prefix.
How can I get the valid URL?
For example, if the link’s URL is “http://example.com
” I want “http://example.com
” (this already works), if the link’s URL is “/node/11
” I want the relative URL “/node/11
“, if the link’s URL is “<front>
” I want the URL “/
“, etc.
EDIT
I can get the value I want within a PHP preprocess function, using this:
$url = $variables['node']->get('field_my_link')->first()->getUrl();
How can I access the same value within the Twig template?
I know I can do this within the preprocess function:
$variables['my_url'] = $url;
Then access the url within Twig using {{ my_url }}
, but I would avoid to write a preprocess function each time I have a link field.