Wie erhalte ich die Knoten-URL in einer Twig-Vorlage?
22
Ich versuche, die Knoten-URL in einer Twig-Vorlage abzurufen. {{ content.node_link }}Gibt den vollständigen Link zurück, ich benötige jedoch nur die URL.
Wenn Sie sich die Knotenvorlage ansehen, sehen Sie, dass urles sich um eine verfügbare Variable handelt. So wird beispielsweise durch einfaches Drucken {{ url }}die rohe URL gerendert, /node/[nid]dh /node/30ohne Umbruchmarkierung. Ist es das, wonach Sie suchen?
Diese Lösung funktioniert und ist ziemlich fetzig. Die Verwendung von {{url}} in einer node--basierten Zweigvorlage führt jedoch zum gleichen Ergebnis.
Eric Steinborn
11
In einer node.html.twig können Sie direkt verwenden {{ url }}
<ahref="{{ url }}">read more</a>
Weitere Informationen finden Sie im Kommentar in der Kernvorlage /core/modules/node/templates/node.html.twig:
{#/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* ...
* - url: Direct URL of the current node.
* ...
#}
...
<article{{ attributes }}>
{{ title_prefix }}
{% if not page %}
<h2{{ title_attributes }}>
<a href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{% endif %}
{{ title_suffix }}
Sie sollten Ihre Antwort eher erklären als "einfach ausgedrückt". Eine Erklärung, wie etwa das, was @Danny Englander in dem Fragenkommentar geschrieben hat, hilft dem Fragesteller und anderen, mehr darüber zu erfahren, wie Sie auf Ihre Antwort gekommen sind und wie sie sich in Zukunft selbst helfen können.
Mradcliffe
Dies ist die einfachste Methode, bei der eine in die Node Twig-Vorlage integrierte Variable verwendet wird.
Eric Steinborn
Das sollte die akzeptierte Antwort sein
Kapsel
7
Ich habe diese Lösung gefunden, die funktioniert, aber ziemlich kompliziert ist.
Sie können node.idanstelle voncontent['#node'].id()
4k4
2
Ich arbeite in View mit einer Display Suite-Vorlage und 'node' ist keiner der verfügbaren Schlüssel. {{dump (_context | keys)}} gibt nur diese Schlüssel aus: 'content', 'theme_hook_original', 'attributes', 'title_attributes', 'content_attributes', 'title_prefix', 'title_suffix', 'db_is_active', 'is_admin' , 'eingeloggt', 'Benutzer', 'Verzeichnis', 'Einstellungen', 'Layout', '#Cache', 'Theme_Hook_Suggestions'
inalto
Tolle Lösung für Display Suite-Vorlagen. @ 4k4 content['#node'].id()ist für den DS-Kontext korrekt.
url
es sich um eine verfügbare Variable handelt. So wird beispielsweise durch einfaches Drucken{{ url }}
die rohe URL gerendert,/node/[nid]
dh/node/30
ohne Umbruchmarkierung. Ist es das, wonach Sie suchen?Antworten:
Entsprechend den Funktionen - In Twig Templates können Sie dies ganz einfach tun
quelle
node--
basierten Zweigvorlage führt jedoch zum gleichen Ergebnis.In einer node.html.twig können Sie direkt verwenden
{{ url }}
Weitere Informationen finden Sie im Kommentar in der Kernvorlage
/core/modules/node/templates/node.html.twig
:quelle
Ich habe diese Lösung gefunden, die funktioniert, aber ziemlich kompliziert ist.
quelle
node.id
anstelle voncontent['#node'].id()
content['#node'].id()
ist für den DS-Kontext korrekt.