Ich möchte die Anzahl der Werte des unbegrenzten Feldes in dem von mir versuchten Zweig-Tempalat zählen
{{ node.field_mytext.count }}
=> mit Fehler konfrontiert
und in einem anderen Versuch
{{ content.field_mytext.count }}
=> nichts zurückgegeben
(Bei dieser Methode habe ich überprüft, dass mein Feld nicht deaktiviert ist. Feld ist Display Manager).
Meine Frage ist, wie ich die Anzahl der Elemente eines Feldes in Twig zählen kann.
Ich hoffe, dass ich mit den Lösungen konfrontiert bin, die folgende Lösungen erwarten: D.
- füge es in preprocess_node hinzu
- benutze Twig Tweak
Antworten:
{{node.field_mytext.count}} => mit Fehler konfrontiert
Dies funktioniert nicht, da die Methode
count
in Zweigrichtlinien nicht zulässig ist:{{content.field_mytext | Länge}}?
Dies funktioniert nicht, da
content
es sich um ein Render-Array mit vielen zusätzlichen Schlüsseln handelt.Dies funktioniert: Feld in Array konvertieren und zählen
quelle
Am einfachsten ist es, das zu bekommen
['#items']|length
. Ich mache es die ganze Zeit, um Elemente zu zählen, um mehr Instanzen anzuzeigen und um Schieberegler zu laden.quelle
Ich habe eigene Twig-Filter verwendet, um Entitätsfelder zu unterstützen. Hiermit können Sie Felder als native Arrays verwenden:
oder
oder
Sie können ganz einfach Ihre eigenen Zweigfilter über ein benutzerdefiniertes Modul hinzufügen. Weitere Informationen finden Sie hier: drupal.org/docs/8/creating-custom-modules . Kurz gesagt, Sie müssen ein Modulverzeichnis erstellen
path/to/drupal/modules/custom/common/
, dort beispielsweisecommon.info.yml
mit Moduldefinition undcommon.services.yml
Dienstdefinition (siehe Kommentare im Code) ablegen und meinen Code in ablegen/path/to/drupal/modules/custom/common/src/TwigExtension.php
.quelle
Verwendung Längenfilter
quelle