2015-11-18 62 views
2

好像參數不正確地傳遞......傳遞一個數組到包括在樹枝

{% set items = { 
     item: { 
      'id': '1', 
      'brand': 'client1', 
      'description': 'solutions.client1.description' | trans}, 
     item: { 
      'id': '2', 
      'brand': 'client2', 
      'description': 'solutions.client2.description' | trans} 
    } %} 

    {% include 'site/case-excerpt.html.twig' 
     with {'id': items.item.id, 
       'brand': items.item.brand, 
       'description': items.item.description 
     } 
    %} 
site/case-excerpt.html.twig文件

然後:

{% include 'site/testimonials/item.html.twig' 
    with {'id': id, 
      'brand': brand, 
      'description': description 
      } 
%} 

而在site/testimonials/item.html.twig文件:

<div class="carousel-item {{ id }}"> 
    <img src="images/brands/{{ brand }}.jpg"> 
    <p> 
     {{ description }} 
    </p> 
</div> 

預計產量如下:

<div class="carousel-item 1"> 
    <img src="images/brands/client1.jpg"> 
    <p> 
     I'm the content of the translation for the first client 
    </p> 
</div> 
<div class="carousel-item 2"> 
    <img src="images/brands/client2.jpg"> 
    <p> 
     I'm the content of the translation for the second client 
    </p> 
</div> 

我放棄了手動循環的想法,因爲它似乎可以很好地完成,here for example

回答

0

這裏是最終工作代碼

基本文件。數組被定義並傳遞給包含。

{% set items = [{ 
      'id': '1', 
      'brand': 'euromaster', 
      'description': 'solutions.euromaster.description' | trans}, 
     { 
      'id': '2', 
      'brand': 'logo-havas-voyages', 
      'description': 'solutions.havas.description' | trans} 
    ] %} 

    {% include 'site/case-excerpt.html.twig' 
     with {'items': items 
     } 
    %} 

然後在site/case-excerpt.html.twig文件: 我們循環陣列上,包括部分

​​

而在site/testimonials/item.html.twig文件:

<div class="carousel-item {{ id }}"> 
    <img src="images/brands/{{ brand }}.jpg"> 
    <p> 
     {{ description }} 
    </p> 
</div> 

感謝@Mazzy!

2

在您提供的示例中,它們循環遍歷對象,併爲每個對象包含一個部分。

您正在使用items.item。 枝條沒有線索,你想要什麼,也創建使用相同的密鑰item陣列,將無法正常工作

{% set items = [{ 
      'id': '1', 
      'brand': 'client1', 
      'description': 'solutions.client1.description' | trans}, 
      { 
      'id': '2', 
      'brand': 'client2', 
      'description': 'solutions.client2.description' | trans} 
    ] %} 

然後依次通過您的項目,幷包括部分

{% for item in items %} 
    {% include 'site/case-excerpt.html.twig' 
      with {'id': item.id, 
        'brand': item.brand, 
        'description': item.description 
      } 
{% endfor %} 
+0

Thanks @Mazzy,我敢肯定這是一大進步,但是我仍然陷入困境,因爲我有3個不同的文件,而不是兩個。 我想要 1.基本文件。定義數組,並通過它在一個包括到'區分excerpt.html.twig'文件 2.'區分excerpt.html.twig':遍歷該數組,以顯示'item.html.twig'作爲模板 3.'item.html.twig'顯示當前數組值的內容 它對你有用嗎? – Romainpetit

+0

明白了。我將發佈最終結果,謝謝! – Romainpetit