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.comele 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.urifor como um URL externohttp://www.example.com?