html - 动态显示 Twig 中的表格

标签 html symfony twig

我试图在不知道对象结构的情况下显示我的用户对象中的所有用户(因此我也可以使用同一个表来显示其他对象集合)。

这是“静态”的样子:

<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/

相关文章:

javascript - 客户端模板引擎 (Rivets.js) 中的性能渲染缓慢

安卓 : authentication to php server application

php - 如何从 $violations 获取数组 key => errorMessage。交响乐4

gulp - 包含一个 Twig 模板作为要传递到另一个模板的对象?

android - 样式表未加载到移动设备上

html - 未应用媒体查询

html - 在方形元素上制作移动边框动画

html - 短 if 内的原始 Twig 变量过滤器

twig - 如何在 Twig 上调用ucwords?

javascript - Symfony - 从 javascript(前端)和 Controller (后端)访问 twig 模板