Twig 使用动态变量

Twig use dynamic variables

我想为每个用户显示他们的可用性。因此,我想将 {{variable}} 连接到 {{variable}} (下面的示例)。

我有一组工作日:

$context['workdays'] = [ 'monday', 'tuesday', 'wednesday', 'thursday', 'friday' ];

以及一些数据库字段,如 monday_morning_availabilitytuesday_morning_availability

使用 {{user.monday_morning_availability}} 我可以显示星期一的可用性和 {{user.tuesday_morning_availability}} 星期二的可用性等。但是我不想每天重复自己来做这件事。

我想调用 {{ user.workday_morning_availability }} 动态插入一个变量到调用中。

我试过:

{% for user in users %}
{% for workday in workdays %}
    {{ workday}} : {{ attribute(_context, user.~'workday'~_morning_availability) }}
{% endfor %}
{% endfor %}

但不幸的是,这会引发错误,请参阅:

Uncaught Exception: Expected name or number

编辑: 我可能正在做某事..

    {% set foobar = workday ~ "_morning_availability" %}

    {{ foobar }}
    {{ workday }} : {{ attribute(_context, user.foobar) }}

foobar 的值符合预期:monday_morning_availability

然而,这在调用用户时不起作用

    {% set foobar = workday ~ "_morning_availability" %}

    {{ workday }} : {{ attribute(user, foobar) }}