D9 + Webform: Twig сумма неограниченного элемента Number

Главные вкладки

Аватар пользователя artomas artomas 16 января 2022 в 0:13

Привет всем.

Не могу найти решение для, казалось бы, тривиальной задачи.

  1. Есть веб-форма с элементом Число, которое должно быть без ограничений (добавляй строки сколько хочешь).
  2. Есть Computed Twig, который должен суммировать все эти добавляемые числа. Он работает соответственно при ограничении до единицы в этом элементе.
  3. Но как написать суммирование для всех строк с числами (вероятно, loop) никак понять не могу.

Лучший ответ

Аватар пользователя artomas artomas 16 января 2022 в 19:32
1

Собственно отвечаю сам, помогли знакомые специалисты:
'#template': '{% set sum = 0 %}{% for val in data.price %}{% set sum = sum + val %}{% endfor %}{{ sum | number_format(2,'','','' '') }}'

Суммирует динамически добавляемые числовые поля, точнее значения, которые в них вносятся посредством элемента Computed Twig.

Весь код YAML.
price:
'#type': number
'#title': Price
'#multiple': true
total:
'#type': computed_twig
'#title': Total
'#template': '{% set sum = 0 %}{% for val in data.price %}{% set sum = sum + val %}{% endfor %}{{ sum | number_format(2,'','','' '') }}'
'#ajax': true

Комментарии

Аватар пользователя artomas artomas 16 января 2022 в 19:32
1

Собственно отвечаю сам, помогли знакомые специалисты:
'#template': '{% set sum = 0 %}{% for val in data.price %}{% set sum = sum + val %}{% endfor %}{{ sum | number_format(2,'','','' '') }}'

Суммирует динамически добавляемые числовые поля, точнее значения, которые в них вносятся посредством элемента Computed Twig.

Весь код YAML.
price:
'#type': number
'#title': Price
'#multiple': true
total:
'#type': computed_twig
'#title': Total
'#template': '{% set sum = 0 %}{% for val in data.price %}{% set sum = sum + val %}{% endfor %}{{ sum | number_format(2,'','','' '') }}'
'#ajax': true