Twig забывает ключи массива - PullRequest
8 голосов
/ 01 июня 2011

У меня странная проблема с веткой в ​​Symfony2. Я использую следующий массив:

[days] => Array
    (
        [1] => Array
            (
                [money] => 9
            )

        [2] => Array
            (
                [money] => 21
            )

        [3] => Array
            (
                [money] => 38
            )

        [4] => Array
            (
                [money] => 6
            )

        [18] => Array
            (
                [money] => 6
            )

        [19] => Array
            (
                [money] => 3
            )

        [31] => Array
            (
                [money] => 11
            )

    )

для проверки я использовал следующий код

{% for key in days %}
  {{ key }}<br>
{% endfor %}

но вывод показывает следующее

0
1
2
3
4
5
6

но это должно выглядеть так

1
2
3
4
18
19
31

Похоже, веточка создает новый массив с новыми индексами. Есть ли способ получить правильный индекс из массива?

С var_dump($days) в php я вижу правильный индекс, поэтому «проблема» связана с веткой.

Ответы [ 3 ]

15 голосов
/ 07 ноября 2011

также вы можете попробовать это:

{% for key,value in users %}
    {{ key }}
{% endfor %}

или, возможно, заглянуть в объект "loop", определенный в цикле for

http://twig.sensiolabs.org/doc/tags/for.html

8 голосов
/ 01 июня 2011

Может быть, это

http://www.twig -project.org / doc / templates.html

По умолчанию цикл перебирает значения последовательности.Вы можете перебирать ключи, используя фильтр ключей:

<h1>Members</h1>
<ul>
  {% for key in users|keys %}
    <li>{{ key }}</li>
  {% endfor %}
</ul>
5 голосов
/ 16 ноября 2011

Это не относится к ветке, это известный пробел в doctrine-mongodb с использованием встроенных документов.Doctrine не может обрабатывать значения ключей из встроенных документов, оно переупорядочивает ключи начиная с 0 и игнорирует правильные значения ключей.В любом случае спасибо за вашу помощь:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...