我试图在不知道对象结构的情况下显示我的用户对象中的所有用户(因此我也可以使用同一个表来显示其他对象集合)。
这是“静态”的样子:
<table>
<tr>
<td>id</td>
<td>username</td>
</tr>
{% for item in entities %}
<tr>
<td>{{ item.id }}</td>
<td>{{ item.username }}</td>
</tr>
{% endfor %}
</table>
我想做的事情如下(这只是为了显示我正在尝试做的事情,但它甚至还没有接近工作):
<table>
<tr>
{% for property_title in entities.item[0] %}
<td>{{ property_title }}</td>
{% endfor %}
</tr>
{% for item in entities %}
<tr>
{% for property in item %}
<td>{{ property.value }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
结果应该是这样的:
<table>
<tr>
<td>id</td>
<td>username</td>
</tr>
<tr>
<td>1</td>
<td>Mike123</td>
</tr>
<tr>
<td>2</td>
<td>jesica2</td>
</tr>
</table>
PD:这是我的第一篇文章,如有遗漏,请见谅。
最佳答案
做一个 Twig 扩展,返回你想要的字段列表,这样你就可以使用 php 来获取字段。之后使用 Twig 的属性函数
{{ attribute(object, fields) }} 调用对象的 getter
文档:
http://symfony.com/doc/current/cookbook/templating/twig_extension.html http://twig.sensiolabs.org/doc/functions/attribute.html
例子:
{% set temp = entities|first %}
{% set fields = getObjectFields(temp) %}
<tr>
{% for property_title in fields %}
<td>{{ property_title }}</td>
{% endfor %}
</tr>
{% for item in entities %}
<tr>
{% for field in fields %}
<td>{{ attribute(item, field) }}</td>
{% endfor %}
</tr>
{% endfor %}
关于html - 动态显示 Twig 中的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21561396/