我在树枝模板中有双倍:
<table>
{% for user in users %}
<tr>
{% for field in fields %}
<td>{{ user.{{field}} }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
这可以做到吗?{{ user.{{field}} }}的正确语法是什么?
属性函数执行此操作,它可用于访问变量的“动态”属性:
<table>
{% for user in users %}
<tr>
{% for field in fields %}
<td>{{ attribute(user,field) }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
所以正确的语法是{{ attribute(user,field) }} ,在这里阅读文档
如果用户与字段是一对多的关系(即一个用户可以有多个字段),并且在 ORM 映射和实体中是这样定义的(即User
实体有一个getFields()
方法,它返回一个实体集合Field
),那么你可以这样做:
<table>
{% for user in users %}
<tr>
{% for field in user.fields %}
<td>{{ field }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
但如果情况并非如此,那么它可能有助于更多地描述用户与其字段之间的关系。