Ich habe ein Linkfeld mit dem Namen field_my_link
(Computername).
Innerhalb einer Twig-Vorlage kann ich den URL-Wert des Links folgendermaßen abrufen:
{{ node.field_my_link.uri }}
Wenn sich in der URL des Links eine externe URL befindet, http://example.com
funktioniert dies z . B. gut.
Wenn jedoch in der URL des Links eine interne URL gespeichert ist "/node/11"
, erhalte ich einen Wert wie diesen:
"internal:/node/11"
mit dem internal:
Präfix " ".
Wie kann ich die gültige URL erhalten?
Wenn die URL des Links beispielsweise http://example.com
"Ich möchte" lautet http://example.com
(dies funktioniert bereits), wenn die URL des Links /node/11
"Ich möchte die relative URL" /node/11
lautet, wenn die URL des Links <front>
"Ich möchte die URL" lautet /
usw .
BEARBEITEN
Ich kann den gewünschten Wert in einer PHP-Vorverarbeitungsfunktion erhalten, indem ich Folgendes verwende:
$url = $variables['node']->get('field_my_link')->first()->getUrl();
Wie kann ich in der Twig-Vorlage auf denselben Wert zugreifen?
Ich weiß, dass ich dies in der Vorverarbeitungsfunktion tun kann:
$variables['my_url'] = $url;
Greifen Sie dann mit auf die URL in Twig zu {{ my_url }}
, aber ich würde es vermeiden, jedes Mal eine Vorverarbeitungsfunktion zu schreiben, wenn ich ein Linkfeld habe.
node.field_my_link.uri
eine externe URL wiehttp://www.example.com
?