我有一个名为field_my_link
(机器名称)的链接字段。
在Twig模板中,我可以这样获取链接的URL值:
{{ node.field_my_link.uri }}
如果在链接的URL中有一个外部 URL,例如,http://example.com
它的效果很好。
但是,如果在链接的URL内存储了一个内部 URL,例如"/node/11"
,我会得到一个像这样的值:
"internal:/node/11"
带有“ internal:
”前缀。
如何获得有效的网址?
例如,如果链接的URL是“ http://example.com
”我想要“ http://example.com
(这已经有效),如果链接的URL是” /node/11
“我想要相对URL” /node/11
“,如果链接的URL是” <front>
“我想要URL” /
“,等等。
编辑
我可以使用以下方法在PHP预处理函数中获取所需的值:
$url = $variables['node']->get('field_my_link')->first()->getUrl();
如何在Twig模板中访问相同的值?
我知道我可以在预处理功能中执行此操作:
$variables['my_url'] = $url;
然后使用来访问Twig中的url {{ my_url }}
,但我避免每次有链接字段时都编写一个预处理函数。
node.field_my_link.uri
外部网址是什么样的,会发生什么http://www.example.com
?