簡體   English   中英

用樹枝渲染嵌套的關聯數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM