2011-06-01 107 views
8

我在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 

Looks li ke twig用新索引创建一个新数组。有没有办法从数组中获取正确的索引?

var_dump($days)在PHP中,我可以看到正确的索引,所以“问题”与树枝有关。

+0

'{{key.money}}'? – igorw 2011-06-01 08:01:25

+0

嗨igorw,我不想要钱的价值,我需要从父数组中的密钥。 – mrohnstock 2011-06-01 08:18:13

+1

尝试'{%debug days%}'',我敢打赌这是twig中的值('array_values','array_shift'等)。机会是重组索引阵列。是第一个值显示了你传入'$ twig_env-> render($ days);'? – 2011-10-20 14:45:58

回答

5

这与枝条无关,这是使用嵌入文档的doctrine-mongodb中已知的缺陷。 Doctrine无法处理来自embeddedDocuments的键值,它将重新排序从0开始的键,并会忽略正确的键值。无论如何谢谢你的帮助:)。

8

也许这

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

默认情况下,在序列的值的循环迭代。您可以通过使用按键过滤器上的按键进行迭代:

<h1>Members</h1> 
<ul> 
    {% for key in users|keys %} 
    <li>{{ key }}</li> 
    {% endfor %} 
</ul> 
+0

感谢您的回答,同样的问题与|键... :( – mrohnstock 2011-06-01 08:19:51

+0

@Monty我试图模拟您的设置,并且此解决方案为我工作(顺便说一句,{{key}}根本不起作用)...你可以发布你在动作中使用的代码吗? – Problematic 2011-06-03 17:15:57

+0

嗨有问题,我在github/twig上发布了整个代码:https://github.com/fabpot/Twig/issues/347。我忘了第二个价值在于,作为azat的形象,但它也行不通。 – mrohnstock 2011-06-09 12:07:12