Как открыть массив с помощью smarty foreach? - PullRequest
0 голосов
/ 17 июня 2020

Мой массив выглядит так:

Array ( 
    [seller1] => Array ( 
        [0] => Array ( 
            [reference] => seller1 
            [name] => Lime verder 
            [unit_price] => 44,00 $ 
            [price] => 26,40 $ 
            [quantity] => 0.6 
            [customization] => Array ( ) 
        ) 
        [1] => Array ( 
            [reference] => seller1 
            [name] => Banane 
            [unit_price] => 12,00 $ 
            [price] => 12,00 $ 
            [quantity] => 1 
            [customization] => Array ( ) 
        ) 
    ) 
    [seller2] => Array ( 
        [0] => Array ( 
            [reference] => seller2 
            [name] => qiwi 
            [unit_price] => 33,00 $ 
            [price] => 16,50 $ 
            [quantity] => 0.5 
            [customization] => Array ( ) 
        ) 
        [1] => Array ( 
            [reference] => seller2 
            [name] => Banane 
            [unit_price] => 25,00 $ 
            [price] => 12,50 $ 
            [quantity] => 0.5 
            [customization] => Array ( ) 
        ) 
        [2] => Array ( 
            [reference] => seller2 
            [name] => Porotocale 
            [unit_price] => 32,00 $ 
            [price] => 48,00 $ 
            [quantity] => 1.5 
            [customization] => Array ( ) 
        )
    ) 
    [seller3] => Array ( 
        [0] => Array ( 
            [reference] => seller3 
            [name] => portocale 
            [unit_price] => 21,00 $ 
            [price] => 21,00 $ 
            [quantity] => 1 
            [customization] => Array ( ) 
        ) 
        [1] => Array ( 
            [reference] => seller3 
            [name] => Babana 
            [unit_price] => 26,00 $ 
            [price] => 52,00 $ 
            [quantity] => 2 
            [customization] => Array ( ) 
        ) 
    ) 
) 1

в smarty я пытаюсь использовать:

{foreach from=$sellerProducts key=$seller item=$products}
    <tr>
      <td>{$seller}</td>
      <td>
        <ol>
        {foreach from=$products item=$product}
          <li>{$product.name}</li>
        {/foreach}
        </ol>
      </td>
    </tr>
  {/foreach}

, но на выходе получаю пустые строки. В том же файле * tpl есть еще один foreach l oop, который выглядит иначе, чем мой:

{foreach $list as $product}

Это связано с версией smarty?

1 Ответ

1 голос
/ 17 июня 2020

Синтаксис {foreach} из версии 2 (который все еще поддерживается в версии 3) использует строковые значения для параметров key= и item=. Поэтому вам нужно изменить {foreach} l oop на:

{foreach from=$sellerProducts key=seller item=products}
...
{/foreach}
...