简体   繁体   English

Twig 使用动态变量

[英]Twig use dynamic variables

I want to display for each user their availability.我想为每个用户显示他们的可用性。 Therefore I want to concatenate a {{variable}} into {{variable}} (example below).因此,我想将 {{variable}} 连接到 {{variable}} (下面的示例)。

I have an array of workdays:我有一系列工作日:

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

And some database fields like monday_morning_availability and tuesday_morning_availability etc.还有一些数据库字段,如monday_morning_availabilitytuesday_morning_availability等。

With {{user.monday_morning_availability}} I can display its availability for monday and {{user.tuesday_morning_availability}} for tuesday etc. However I don't want to repeat myself for each day to do this.使用{{user.monday_morning_availability}}我可以显示其星期一的可用性和{{user.tuesday_morning_availability}}的星期二等。但是我不想每天重复自己来执行此操作。

I want to call {{ user.workday_morning_availability }} to dynamically insert a variable into the call.我想调用{{ user.workday_morning_availability }}来动态插入一个变量到调用中。

I've tried:我试过了:

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

But unfortunately that throws an error, see:但不幸的是,这会引发错误,请参阅:

Uncaught Exception: Expected name or number

Edit : I might be onto something..编辑:我可能在做某事..

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

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

Value of foobar is as expected: monday_morning_availability foob​​ar 的值符合预期: monday_morning_availability

This however doesn't work when called on the user然而,这在用户调用时不起作用

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM