2017-02-03 67 views
2

我使用宏在TWIG中做了一個遞歸函數。這個宏應該計算它可以在嵌套數組中找到描述的次數並返回它。TWIG:這個遞歸迭代有什麼問題

有人可以幫助我解決問題。小提琴,可以發現:

https://twigfiddle.com/5uskoi

正如你所看到的結果有4,而應該是6

感謝您的時間!

問候, 碧玉

的TWIG代碼:

{% macro countArray(item) %} 
    {% import _self as self %} 

    {% set total = 1 %} 

    {% for yesItem in item.yes.items %} 
     {% set total = total + self.countArray(yesItem) %} 
    {% endfor %} 

    {% for noItem in item.no.items %} 
     {% set total = + total + self.countArray(noItem) %} 
    {% endfor %} 

    {{ total }} 

{% endmacro %} 

{% from _self import countArray %} 

{% for item in data.items %} 

    {{ countArray(item) }}  

{% endfor %} 

與此數據:

data: 
    items:      
     - description: '1' 
      yes: 
       items: 
        - description: '2' 
        - description: '3' 
      no: 
       items:      
        - description: '4' 
        yes: 
         items: 
          - description: '5' 
          - description: '6' 

回答

0

找到了解決這個問題。我在宏調用之後添加| trim。這會修剪所有空白和其他與數字一起返回的內容。

這引起了將它們加在一起的問題。

twigfiddle已更新爲此設置以供進一步參考!

Regards, Jasper