Chcę policzyć liczbę wartości pola nieograniczonego w tempalu gałązki, które próbowałem
{{ node.field_mytext.count }}
=> w obliczu błędu
i przy innej próbie
{{ content.field_mytext.count }}
=> nic nie zwróciło
(w tej metodzie sprawdziłem, że moje pole nie jest wyłączone, to menedżer wyświetlania).
Moje pytanie brzmi: jak mogę policzyć liczbę elementów pola w Twig?
Mam nadzieję, że zmierzę się z rozwiązaniami, których oczekuję: D
- dodaj go w węźle preprocess_node
- użyj Twig Tweak
Odpowiedzi:
{{node.field_mytext.count}} => w obliczu błędu
To nie działa, ponieważ metoda
count
nie jest dozwolona w zasadach dotyczących gałązek:{{content.field_mytext | długość}}?
To nie działa, ponieważ
content
jest to tablica renderująca z dużą ilością dodatkowych kluczy.Działa to: Konwertuj pole na tablicę i policz
źródło
Najłatwiejszym sposobem jest zdobycie
['#items']|length
. Robię to cały czas, licząc przedmioty, aby zobaczyć więcej instancji i ładując suwaki.źródło
Użyłem własnych filtrów Twig do obsługi pól encji, dzięki czemu możesz używać pól jako rodzimych tablic:
lub
lub
Możesz łatwo dodać własne filtry Twig za pomocą niestandardowego modułu. Możesz dowiedzieć się więcej tutaj: drupal.org/docs/8/creating-custom-modules . Krótko mówiąc, musisz utworzyć katalog modułów, na przykład
path/to/drupal/modules/custom/common/
umieścić tamcommon.info.yml
z definicją modułu icommon.services.yml
definicją usługi (patrz komentarze w kodzie) i umieścić mój kod/path/to/drupal/modules/custom/common/src/TwigExtension.php
.źródło
Użyj filtra długości
źródło