三个嵌套的for循环似乎不起作用

时间:2016-05-13 13:10:02

标签: php symfony for-loop nested twig

我目前正在开发一个关于Symfony 2.8的网站项目。 但我有一个问题:我想显示来自JSON对象的信息。但是,为了做我想做的事,我需要做三个嵌套的for循环。

所以这是我的代码块:

我想浏览的数组:

element stdClass Object =>
(
[partschemes] => Array
(
    [0] => ( [id] => 1 )
)
[decodedPartitions] => Array
    (
        [0] => stdClass Object
            (
                [partitions] => Array
                    (
                        [0] => stdClass Object
                            (
                                [name] => WINDOWS
                                [type] => primary
                                [size] => -
                                [filesystem] => fat32
                            )

                        [1] => stdClass Object
                            (
                                [name] => DATA*
                                [type] => primary
                                [size] => 256 Mo
                                [filesystem] => fat32
                            )

                    )

            )

    )
)

我的树枝模板:

{% for i, disk in element.decodedPartitions %}
        <tr>
            <th class="text-center" rowspan="3" width="10%">
                <a href="{{ app.request.baseUrl }}/partscheme/details/{{ element.partschemes[i].id }}" class="btn btn-info" title="{{ 'button.details' | trans }}">Disk {{ i }}</a>
            </th>
        </tr>

        {% for j, part in disk.partitions %}
        <tr>
            <th class="text-center" width="10%">Partition {{ j }}</th>
            <td>
                {% for k, partInfo in part %}
                    {{ k }}: {{ partInfo }}<br>
                {% endfor %}
            </td>
        </tr>
        {% endfor %}
    {% endfor %}

结果,生成的页面向我显示,没有不同分区的信息:

---------------------------------
       | Partition 0 |          |
Disk 1 |-------------|----------|
       | Partition 1 |          |
---------------------------------

1 个答案:

答案 0 :(得分:0)

感谢Miro,我能够遍历我的JSON对象。

原因是无法直接在Twig中迭代stdClass对象。所以我在控制器的json_decode使用中添加了一个参数。

将JSON转换为stdClass对象:json_decode($json)

将JSON转换为关联数组:json_decode($json, true)

有关json_decode的更多信息。