Mam pole Link o nazwie field_my_link
(nazwa komputera).
W szablonie Twig mogę uzyskać adres URL linku za pomocą:
{{ node.field_my_link.uri }}
Jeśli w adresie URL linku znajduje się zewnętrzny adres URL, np http://example.com
. Działa dobrze.
Ale jeśli w adresie URL linku znajduje się wewnętrzny adres URL, np. "/node/11"
Otrzymuję taką wartość:
"internal:/node/11"
z internal:
prefiksem „ ”.
Jak mogę uzyskać prawidłowy adres URL?
Na przykład, jeśli adres URL linku to „ http://example.com
„ Chcę ” http://example.com
” (to już działa), jeśli adres URL linku to „ /node/11
„ Chcę względny adres URL ” /node/11
”, jeśli adres URL linku to „ <front>
„ Chcę adres URL ” /
” itp. .
EDYTOWAĆ
Mogę uzyskać żądaną wartość w ramach funkcji wstępnego przetwarzania PHP, używając tego:
$url = $variables['node']->get('field_my_link')->first()->getUrl();
Jak mogę uzyskać dostęp do tej samej wartości w szablonie Twig?
Wiem, że mogę to zrobić w ramach funkcji wstępnego przetwarzania:
$variables['my_url'] = $url;
Następnie uzyskaj dostęp do adresu URL w Twig za pomocą {{ my_url }}
, ale unikałbym pisania funkcji wstępnego przetwarzania za każdym razem, gdy mam pole linku.
node.field_my_link.uri
zewnętrzny adres URL jest podobnyhttp://www.example.com
?