我是Symfony的新手,我的树枝上有问题。我只是不知道该怎么做:(
{% set trans_number = '' %}
{% for tran in trans %}
{% set trans_number = tran.transNumber %}
{{dump(trans_number)}}
// this is what I get when dumping inside the loop: string(10) "1073110793" string(10) "1073145793" string(12) "646721454679"
{% endfor %}
但是当我试图将它转移到循环之外时:
{% set trans_number = '' %}
{% for tran in trans %}
{% set trans_number = tran.transNumber %}
{% endfor %}
{{dump(trans_number)}}
// I get only the last value string(12) "646721454679"
现在我的问题是,如何在循环外部访问分配给trans_number的所有值? 提前谢谢。
答案 0 :(得分:2)
您可以通过变量范围更正并通过在循环之前声明trans_number
来处理范围访问,但是您错误地解释set
如何使用Twig,或者只是变量如何工作
当您使用set trans_number = tran.transNumber
时,您每次只为trans_number
变量分配一个新值。当您将dump
移到循环外部时,您不再在每次迭代时转储trans_number
的新值。
如果您希望在trans_number
中构建值列表,则需要将trans_number
初始化为列表并通过for
循环的每次迭代追加到它:
{% set trans_number = [] %}
{% for tran in trans %}
{% set trans_number = trans_number|merge([tran.transNumber]) %}
{% endfor %}
{{dump(trans_number)}}
答案 1 :(得分:0)
对于在问题标题中寻找问题答案的人:
您可以使用最后过滤器
示例:
{{ dump( (trans|last) ) }}