打印变量的值包含变量是否可以在树枝中?像php一样,我们使用$$打印变量值?

时间:2018-07-10 10:12:00

标签: twig

我的用户对象包含所有用户字段。

和具有[“ user.id”,“ user.email”,“ user.gender”]的listFields数组。 字符串中的变量。

我想循环listFields并从用户对象中打印它的原始值

当前在屏幕上打印user.id user.email。

我想在屏幕上打印它的值。

对此有任何解决方案!还是有可能?

我的代码

{% for fieldName in listFields %}
    <td>
        {{ fieldName }}                                               
    </td>                         
{% endfor %}

1 个答案:

答案 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 %}

demo


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
  ]
]