我正试图按用户/地区拆分我的Opencart销售,但它的工作是有限的。
{% set handledPeople = [] %}
{% set handledProducts = [] %}
{% for usuario in products if usuario.sellername not in handledPeople %}
{% sellername: {{ usuario.sellername }} %}
{% set handledPeople = handledPeople|merge([usuario.sellername]) %}
{% for product in products if product.name == usuario.name and product not in handledProducts %}
<p>{{ product.name }}</p>
{% set handledProducts = handledProducts|merge([product.name]) %}
{% endfor %}/p>
{% endfor %}
现在,它没有显示所有产品,它停在第二个产品中。有什么想法吗?
答案 0 :(得分:0)
你想做什么?
这是不正确的Twig语法:
{% set sellername = usuario.sellername %}
也许你的意思是:
sellername
但它无论如何都没有意义,因为你不能在任何地方使用变量products
。如果删除该行代码,则数组"products" => array:4 [▼
0 => array:2 [▼
"sellername" => "John"
"name" => "foo"
]
1 => array:2 [▼
"sellername" => "John"
"name" => "bar"
]
2 => array:2 [▼
"sellername" => "Lisa"
"name" => "baz"
]
3 => array:2 [▼
"sellername" => "Daniel"
"name" => "ham and spam"
]
]
如下所示:
<p>foo</p>
/p>
<p>baz</p>
/p>
<p>ham and spam</p>
/p>
你会得到这个:
{% set groupedProducts = {} %}
{% for product in products %}
{% set groupedProducts = groupedProducts|merge({
(product.sellername): groupedProducts[product.sellername]|default([])|merge([product.name])
}) %}
{% endfor %}
{% for seller, products in groupedProducts %}
{{ seller }} is selling:
{% for product in products %}
{{ product }}
{% endfor %}
{% endfor %}
也许不是你想要的? : - )
如果您改为这样做:
John is selling:
foo
bar
Lisa is selling:
baz
Daniel is selling:
ham and spam
你会得到这个:
{{1}}
这是您想要的结果吗?
PS。这种代码(按组拆分结果)最好用PHP代替Twig(如果可能的话,OpenCart可能很乱)。