Twig - 对对象使用变量键变量、对象、Twig

2023-09-07 00:25:24 作者:朱砂^

我正在使用 Twig,但遇到了问题.

I am using Twig and I have a problem.

我想为对象使用变量索引时遇到问题.

I have a problem when I want to use a variable index for an object.

这是我的代码:

{% for label, field in params.fields %}
    {{ dump(data.field) }}
{% endfor %}

data 是一个包含 {'email': 'test@test.fr', 'name': 'John'} 的对象.

data is an object containing {'email': 'test@test.fr', 'name': 'John'}.

Field 是一个字符串数组,包含 ['email', 'name']

Field is an array of string containing ['email', 'name']

我无法动态显示我的对象的值.

I can't show the value my object dynamically.

{{ dump(data.email) }} 有效.

{{ dump(data.email) }} works.

如何使用动态索引?

推荐答案

在 Twig 语法中,data.field 等于 PHP 中的 $data['field'].换句话说,Twig 使用 field 作为数组键名,而不是将 field 变量的值作为键名.

In Twig syntax, data.field is equal to $data['field'] in PHP. In other words, Twig use field as the array key name instead of taking the value of the field variable and use it as a key name.

您可以使用 attribute() 功能:

You can use the attribute() function:

attribute 函数可用于访问动态"属性.变量的属性:

The attribute function can be used to access a "dynamic" attribute of a variable:

例子:

{{ dump(attribute(data, field)) }}
{# or simply #}
{{ attribute(data, field) }}