首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >细枝和排在夏末之上

细枝和排在夏末之上
EN

Stack Overflow用户
提问于 2013-09-21 14:26:41
回答 5查看 27.4K关注 0票数 10

我对小枝有点陌生,我知道可以在模板中把值加起来,然后在变量中收集它们。但我真正需要的是在总结它们之前先显示模板中的求和值。我需要一些像旧塞福尼的插槽。或者在php中,我可以通过ob_start()来完成这个任务。在树枝上有可能吗?

我喜欢这样的东西。

代码语言:javascript
复制
sum is: {{ sum }} {# obviously it is 0 right here, but i want the value from the calculation #}

{# some content.. #} 

{% set sum = 0 %}

{% for r in a.numbers}

   {% set sum = sum + r.number %}

{% endfor %}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-02-19 14:44:53

可以通过添加额外的过滤器( extension.html )来扩展树枝。

在您的例子中,您可以使用array_sum函数:

代码语言:javascript
复制
public function getFilters()
{
    return array(
        new \Twig_SimpleFilter('sum', 'array_sum'),
    );
}
票数 13
EN

Stack Overflow用户

发布于 2014-05-23 10:09:05

如果您不想使用控制器,并且希望在树枝中进行求和,那么尝试使用set命令:

代码语言:javascript
复制
{# do loop first and assign whatever output you want to a variable #}
{% set sum = 0 %}    
{% set loopOutput %}               
    {% for r in a.numbers}            
       {% set sum = sum + r.number %}        
    {% endfor %}    
{% endset %}

 sum is: {{ sum }} 

{# some content.. #} 

{{ loopOutput }}

我假设循环在一个特定的位置,因为它的目的是将一些东西输出到模板中,这允许您重新排列加载顺序,同时仍然按需要显示。

票数 9
EN

Stack Overflow用户

发布于 2019-07-16 17:13:43

在Twig 1.41和2.10中添加了一个reduce 过滤器,并添加了

reduce过滤器使用箭头函数迭代地将序列或映射缩减到单个值,以便将其还原为单个值。箭头函数接收上一次迭代的返回值和序列或映射的当前值: {% set numbers = 1,2,3 %} {数字\减少((进位,v) =>进位+ v) }} {#输出6} reduce过滤器将一个initial值作为第二个参数: {[数字\} {#输出16 } 注意,箭头函数可以访问当前上下文。

参数:

  • array:序列或映射
  • arrow:箭头函数
  • initial:初始值

参考文献:https://twig.symfony.com/doc/2.x/filters/reduce.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18933753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档