Я хочу посчитать количество значений неограниченного поля в веточке Tempalate, которую я пытался
{{ node.field_mytext.count }}
=> столкнулся с ошибкой
и в другой попытаться
{{ content.field_mytext.count }}
=> ничего не возвращено
(в этом методе я проверил мое поле не в отключенном поле диспетчера отображения).
У меня вопрос, как я могу посчитать количество элементов поля в Twig?
Надеюсь я столкнусь с решениями, ожидаю этих решений: D
- добавить его в preprocess_node
- использовать Twig Tweak
Ответы:
{{node.field_mytext.count}} => столкнулся с ошибкой
Это не работает, потому что метод
count
не разрешен в политиках веток:{{content.field_mytext | длина}}?
Это не работает, потому что
content
это рендер-массив с большим количеством дополнительных ключей.Это работает: конвертировать поля в массив и считать
источник
Самый простой способ - это получить
['#items']|length
. Я делаю это все время для подсчета предметов, просмотра большего количества экземпляров и загрузки слайдеров.источник
Я использовал собственные фильтры Twig для поддержки полей сущностей, при этом вы можете использовать поля как собственные массивы:
или
или
Вы можете легко добавить свои собственные фильтры Twig через пользовательский модуль. Вы можете узнать больше здесь: drupal.org/docs/8/creating-custom-modules . Короче говоря, вам нужно создать каталог модулей, например
path/to/drupal/modules/custom/common/
, поместить тудаcommon.info.yml
с определением модуля иcommon.services.yml
с определением сервиса (см. Комментарии в коде) и поместить мой код в/path/to/drupal/modules/custom/common/src/TwigExtension.php
.источник
Использовать фильтр длины
источник