【发布时间】:2017-03-05 22:08:07
【问题描述】:
我刚开始在 drupal8 中使用 twig。我正在尝试使用视图计算两个数值 drupal8 变量之间的差异。
field_goals_for: 24
field_goals_against: 3
field_goals_difference: should return 21 but returns 1
我已经尝试过这样的事情(有和没有 number_formats):
{% set diff = field_goals_for|number_format - field_goals_against|number_format %}
{{ diff }}
我认为问题在于这两个变量是字符串而不是 int。
有没有办法将它们转换为 int 并使用 twig 返回正确的结果?如果没有,您有其他解决方案可以建议吗?
编辑: 我尝试对这两个值求和并乘以:
{{ field_goals_for }} = 24
{{ field_goals_against }} = 3
{{ field_goals_for - field_goals_against }} = 0
{{ field_goals_for + field_goals_against }} = 2
{{ field_goals_for * field_goals_against }} = 1
为什么它们被认为等于 1 而不是它们的实际值?
编辑 2:我发现了问题。已经使用的值是 field_goals_for__value 而不是 field_goals_for。不幸的是,我找不到在同一个文本字段中同时使用它们的方法。
【问题讨论】:
-
你试过用
intval代替number_format吗? -
你不需要像here那样转换它们,使用
number_format是导致数字被视为字符串的原因 -
我尝试了您的两种解决方案,但没有任何效果。我认为这个问题与drupal有关,但我不明白如何。 {{ field_goals_for }} 返回 24,{{ field_goals_for|intval }} 返回 0
标签: string int twig drupal-theming drupal-8