Tôi có một trường Liên kết có tên field_my_link
(tên máy).
Trong mẫu Twig tôi có thể nhận giá trị URL của liên kết với điều này:
{{ node.field_my_link.uri }}
Nếu bên trong URL của Liên kết có một URL bên ngoài , ví dụ: URL http://example.com
hoạt động tốt.
Nhưng, nếu bên trong URL của Liên kết có một URL nội bộ , ví dụ: "/node/11"
tôi nhận được một giá trị như thế này:
"internal:/node/11"
với internal:
tiền tố "".
Làm cách nào tôi có thể nhận được URL hợp lệ ?
Ví dụ: nếu URL của liên kết là " http://example.com
" Tôi muốn " http://example.com
" (điều này đã hoạt động), nếu URL của liên kết là " /node/11
" Tôi muốn URL tương đối " /node/11
", nếu URL của liên kết là " <front>
" Tôi muốn URL " /
", v.v. .
CHỈNH SỬA
Tôi có thể nhận được giá trị tôi muốn trong hàm tiền xử lý PHP, bằng cách sử dụng:
$url = $variables['node']->get('field_my_link')->first()->getUrl();
Làm cách nào tôi có thể truy cập cùng một giá trị trong mẫu Twig?
Tôi biết tôi có thể làm điều này trong chức năng tiền xử lý:
$variables['my_url'] = $url;
Sau đó truy cập url trong Twig bằng cách sử dụng {{ my_url }}
, nhưng tôi sẽ tránh viết hàm tiền xử lý mỗi khi tôi có trường liên kết.
node.field_my_link.uri
một url bên ngoài như thếhttp://www.example.com
nào?