我将尝试在Twig循环内动态分配变量。例如,以下是传递到模板中的JSON:
[{
"name": "firstName",
"value": "Adam",
},
{
"name": "Lastname",
"value": "Human",
}]
值得注意的是,我没有修改这个JSON格式的能力,因为它来自第三方,所以我需要在模板方面解决这个问题。
我想循环遍历这个JSON,并为每个对象创建变量,如下所示:
{% for item in json %}
{% set {{item.name}} = item.value %}
{% endfor %}
这个问题在Twig中的解决方案是,它会假定我要将值分配给字面量,而我想将值分配给一个已经评估过的变量名。这样,我就可以在模板中只引用数组中的每个项,如{{firstName}},并返回"Adam"。
我尝试了许多不同的方法来强制Twig动态创建一个变量数组,例如:
{% set (item.name) = item.value %}
和
{% set options = {} %}
{% for item in json %}
{% set options[item.name] = item.value %}
{% endfor %}
运气不好。
有没有关于动态创建变量的想法?这在大多数编程语言中都很简单,所以我很难理解在像Twig这样的模板引擎中如何处理它。