[英]Render nested associative array with twig
我面臨一個需要幫助的小問題。 我有這個php應用程序,它將數據傳遞到樹枝html模板。
我的PHP代碼生成以下內容(簡化):
$menuItemsWithPictures = array(
'PageName' => "page_name",
'pictures' => array('/path/to/picture1.jpg', '/path/to/picture2.jpg'),
);
在我的前端中,我希望將$menuItemsWithPictures
中的每個項目渲染為如下所示(再次,此處已非常簡化):
<div>
<a href=PageName><!-- Taken from the PageName key in the array-->
<img src=picture1 /> <!-- taken from pictures array [0] -->
<img src=picture2 /> <!-- taken from pictures array [1] -->
</a>
</div>
我嘗試了{% for key, value in array %}
, {% for key, value in array %}
一些變體,但是沒有用,因為我總是最終會隨着數組的長度而不斷生成a
標簽。
有人可以在這里指出正確的方向嗎?
問候,derelektrischemoench
我認為您弄錯了數組示例。 我相信您實際上正在使用多維數組,不是嗎? 像這樣:
$menuItemsWithPictures = [
[
'pageName' => 'page_name',
'pictures' => array('/path/to/picture1.jpg', '/path/to/picture2.jpg'),
],
[
'pageName' => 'another_page',
'pictures' => array('/path/to/picture1.jpg', '/path/to/picture2.jpg'),
]
];
如果是這種情況,那么Corret Twig語法將是:
<div>
{% for item in menuItemsWithPictures %}
<a href="{{ item.pageName }}">
{% for image in item.pictures %}
<img src="{{ image }}"/>
{% endfor }
</a>
{% endfor %}
</div>
您將需要一個嵌套循環來實現所需的功能,第一個循環將遍歷頁面,而內部循環將處理圖片:
<div>
{% for page in pages %}
<a href="#{{ page.PageName }}">
{% for picture in page.pictures %}
<img src={{ picture }} />
{% endfor %}
</a>
{% endfor %}
</div>
這是您的用例的樹枝小提琴: https : //twigfiddle.com/8ncmqi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.