Drupal8 Twig - 将字符串转换为整数

时间:2016-10-24 07:48:59

标签: string int twig drupal-theming drupal-8

我刚开始在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返回正确的结果吗?如果没有,你有什么替代解决方案可以建议吗?

编辑: 我尝试使用SUM并同时使用MULTIPLE这两个值:

{{ 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。不幸的是,我找不到在同一文本字段中使用它们的方法。

6 个答案:

答案 0 :(得分:1)

试试

{{ diff["#markup"]|number_format(2,',') }}

它对我有用。

答案 1 :(得分:1)

我遇到了类似的问题-我必须添加'#markup'才能使其正常工作。

 {{items[0].content['#markup']|number_format/5*100}}

答案 2 :(得分:1)

剥离标签对我有用!

{% set diff = field_goals_for|striptags - field_goals_against|striptags %}
{{ diff }}

答案 3 :(得分:0)

number_format过滤器格式化数字。您可以使用其他参数控制小数位数,小数点和千位分隔符。

例如:

{% set diff = field_goals_for - field_goals_against %}
{{ diff|number_format(2,',') }}

将打印:

21,00

检查here一个有效的例子。

希望这个帮助

答案 4 :(得分:0)

在Twig 1.5

中添加了number_format过滤器

请检查你的枝条版本

(对不起,这最初是评论,但因为我还没有评论,我写了一个答案)

答案 5 :(得分:0)

试试

{{ diff.__toString|number_format(2,',') }}