我的用户对象包含所有用户字段。
和具有[“ user.id”,“ user.email”,“ user.gender”]的listFields数组。 字符串中的变量。
我想循环listFields并从用户对象中打印它的原始值
当前在屏幕上打印user.id user.email。
我想在屏幕上打印它的值。
对此有任何解决方案!还是有可能?
我的代码
{% for fieldName in listFields %}
<td>
{{ fieldName }}
</td>
{% endfor %}
答案 0 :(得分:1)
如果要打印动态变量,可以使用函数attribute
:
{% set user_fields = [ 'user.id', 'user.email', 'user.gender', 'alice.email', 'bob.id', 'bob.foo', ] %}
{% for field in user_fields %}
{{ attribute(attribute(_context, (field|split('.'))[0])|default([]), (field|split('.'))[1])|default(null) }}
{% endfor %}
array:3 [▼
"user" => array:3 [▼
"id" => 42
"email" => "user@example.com"
"gender" => 0
]
"bob" => array:3 [▼
"id" => 1
"email" => "bob@example.com"
"gender" => 0
]
"alice" => array:3 [▼
"id" => 100
"email" => "alice@example.com"
"gender" => 1
]
]