2013-10-04 131 views
0

我是一個新的樹枝用戶,我與麻煩填補了網格... 我有一個實體稱爲「菜單」,並希望只訪問一些屬性,所以我創建了一個數組像這樣:樹枝嵌套循環

 $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'), 
      ); 

所以我試圖做一個嵌套循環來訪問這些信息......但我不知道它是如何做到的。我嘗試過這樣,但顯然這是錯誤的。

<tbody> 
    {% for menu in menus %} 
     <tr> 
      {% for item in itens %} 
       <td> {{ menu.[item.name] }} </td> 
      {% endfor %}     
     </tr> 
    {% endfor %} 
</tbody> 

我該怎麼辦?


在PHP代碼

,它看起來像它:

foreach $menus as $menu { 
     echo "<tr>"; 
     foreach $itens as $item 
     echo "<td>".$menu[$item["name"]]."</td>"; 
     echo "</tr>"; 
    } 
+0

我意識到這是舊的,但你沒有{%的項目在itens%}注意「itens」應該是「項目」,這似乎是這個和之間的唯一區別接受的答案 – Logikos

回答

2

試試這個,

<tbody> 
    {% for menu in menus %} 
     <tr> 
      {% for item in items %} 
       <td> {{ menu[item.name] }} </td> 
      {% endfor %}     
     </tr> 
    {% endfor %} 
</tbody> 
+1

是的!而已!!!我之前嘗試過,但我不知道爲什麼沒有成功。謝謝! –

2

請記住,樹枝是非常相似的PHP。您的模板應該是這樣的:

<tbody> 
    {% for menu in menus %} 
     <tr> 
      {% for item in menu %} 
       <td> {{ item.name }} </td> 
      {% endfor %}     
     </tr> 
    {% endfor %} 
</tbody> 

注意,這將轉化爲這樣的事情在PHP中:

foreach ($menus as $menu) { 
    foreach ($menu as $item) { 
     // ... 
    } 
} 

更多關於樹枝循環can be found in the twig documentation

+0

對不起,如果我沒有解釋得好,但我想使用另一個數組的信息來訪問一個數組鍵。我認爲你的答案將訪問一個多數組,但不是我需要的......是嗎? –

+1

在這種情況下,您需要刪除'menu'和'[item.name]'之間的'.'。 – ferdynator

+0

這是一個很好的使用嵌套數組值的例子 –