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.comhoạ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.urimột url bên ngoài như thếhttp://www.example.comnào?