J'ai un champ Lien nommé field_my_link
(nom de la machine).
Dans un modèle Twig, je peux obtenir la valeur de l'URL du lien avec ceci:
{{ node.field_my_link.uri }}
Si à l'intérieur de l'URL du lien, il y a une URL externe , par exemple, http://example.com
cela fonctionne bien.
Mais, si à l'intérieur de l'URL du lien est stockée une URL interne , par exemple "/node/11"
, j'obtiens une valeur comme celle-ci:
"internal:/node/11"
avec le internal:
préfixe " ".
Comment puis-je obtenir l' URL valide ?
Par exemple, si l'URL du lien est " http://example.com
" Je veux " http://example.com
" (cela fonctionne déjà), si l'URL du lien est " /node/11
" Je veux l'URL relative " /node/11
", si l'URL du lien est " <front>
" Je veux l'URL " /
", etc. .
MODIFIER
Je peux obtenir la valeur que je veux dans une fonction de prétraitement PHP, en utilisant ceci:
$url = $variables['node']->get('field_my_link')->first()->getUrl();
Comment puis-je accéder à la même valeur dans le modèle Twig?
Je sais que je peux le faire dans la fonction de prétraitement:
$variables['my_url'] = $url;
Ensuite, accédez à l'URL dans Twig en utilisant {{ my_url }}
, mais j'éviterais d'écrire une fonction de prétraitement chaque fois que j'ai un champ de lien.
node.field_my_link.uri
une URL externe est commehttp://www.example.com
?