Twig - 如何使用变量调用对象方法

5

我正在尝试填充一个网格,但是我不知道如何使用变量调用对象方法。变量"menus"是我的实体,而"itens"是我想在此网格中显示的数组。

    $itens = array(
            array('name' => 'id', 'label' => 'Id'),
            array('name' => 'parent', 'label' => 'Pai'),
            array('name' => 'name', 'label' => 'Nome'),
            array('name' => 'route', 'label' => 'Rota'),
            array('name' => 'position', 'label' => 'Posição'),
    );

以下是我的代码:

{% for menu in menus %}
    <tr>
        {% for item in itens %}
            <td>{{ attribute(menu, item['name']) }}</td>
        {% endfor %}
    </tr>
{% endfor %}

我也尝试过使用menu.item ['name'],但没有成功...有什么想法吗?

你能在 for 循环内部发布 {{ dump(item) }} 的结果吗?只需要看到结构即可。 - Ken Hannel
数组(2){["name"]=>string(2)"id"["label"]=>string(2)"Id"} 数组(2){["name"]=>string(6)"parent"["label"]=>string(3)"Pai"} 数组(2){["name"]=>string(4)"name"["label"]=>string(4)"Nome"} 数组(2){["name"]=>string(5)"route"["label"]=>string(4)"Rota"} 数组(2){["name"]=>string(8)"position"["label"]=>string(9)"Posição"} - Eduardo K
Ricardo,不仅如此...我正在尝试访问一个变量内部的对象属性。 - Eduardo K
1个回答

8

I got it!!! I did this:

    {% for menu in menus %}
        <tr>
            {% for item in itens %}
                {% set method %}{{ item['name'] }}{% endset %}
               <td>{{ attribute(menu, method) }}</td>
            {% endfor %}
        </tr>
    {% endfor %}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接