Eu tenho um campo Link chamado field_my_link
(nome da máquina).
Dentro de um modelo Twig, posso obter o valor da URL do link com este:
{{ node.field_my_link.uri }}
Se dentro do URL do link houver um URL externo , por exemplo, http://example.com
ele funcionará bem.
Mas, se dentro da URL do link houver uma URL interna armazenada , por exemplo "/node/11"
, recebo um valor como este:
"internal:/node/11"
com o internal:
prefixo " ".
Como posso obter o URL válido ?
Por exemplo, se o URL do link for " http://example.com
" Quero " http://example.com
" (isso já funciona), se o URL do link for " /node/11
" Quero o URL relativo " /node/11
", se o URL do link for " <front>
" Quero o URL " /
", etc. .
EDITAR
Posso obter o valor que desejo dentro de uma função de pré-processo PHP, usando este:
$url = $variables['node']->get('field_my_link')->first()->getUrl();
Como posso acessar o mesmo valor no modelo Twig?
Eu sei que posso fazer isso dentro da função pré-processo:
$variables['my_url'] = $url;
Em seguida, acesse o URL dentro do Twig usando {{ my_url }}
, mas evitaria escrever uma função de pré-processo toda vez que tiver um campo de link.
node.field_my_link.uri
for como um URL externohttp://www.example.com
?