下午好。有一个问题,我有一个任务数组。包含与我直接相关的任务(为了我的执行),以及我订购的任务。
我需要统计我必须完成的任务数量和必须为我完成的任务数量。
这就是 for 循环在我的工作中的样子:
{% for task in tasks if (task.deadline > "now"|date(datetime_type)) and (task.perfomer.id == app.user.id) %} вывод задания {% endfor %}
这是我的订单循环的样子:
{% for task in tasks if (task.deadline > "now"|date(datetime_type)) and (task.mentor.id == app.user.id) and task.perfomer.id != app.user.id %} вывод задания {% endfor %}
在每个循环之前,我轻轻地计算每个“数组”中有多少个任务。那些。就像是:{{ (tasks if (task.deadline > "now"|date(datetime_type)) and (task.perfomer.id == app.user.id))|length }}
接受的答案使用 twig 作为构建数组的编程语言。对于模板引擎来说,这不是一个合适的任务。理想情况下,当然最好把数组的组装转移到php中。但如果这不可能,则可以应用另一种解决方案,而无需创建新数组。
为此,您需要使用
set
/endset
:也就是说,你的循环本身保持不变,只添加了一个包装器和一个循环内部的变量赋值。
这种方法更通用,因为如果您需要在循环内计算多个计数器(例如,完成了多少任务,有多少花费了 5 小时以上的时间)并在列表之前显示这些计数器,也可以使用它任务本身。
twig 中的循环包含循环变量。
http://twig.sensiolabs.org/doc/tags/for.html#the-loop-variable
更新:
在我看来,他们应该是被提前分成了两个阵法。将现成的变量传递给视图会更好。好吧,如果那是问题,那么这里是: