我有一个功能,我计算每个产品的最终价格,然后将其保存在一个数组中。现在,当我想要显示值时,我坚持如何动态显示所有这些值。
这是功能:
public function getTotal($items)
{
$total = array();
foreach($items as $key=>$item){
$total[$key] = $item->getPrice() - $item->getDiscount() + $item->getValue();
}
return $total;
}
所有方法getValue,getDiscount等都正常工作。
这是我尝试显示的方式:
{{ getTotal(product)[key]}}
问题在于,当我写例如{{ getTotal(product)[0]}}
或{{ getTotal(product)[1]}}
等时,我得到正确的值,但只有1个产品。我需要从所有这些中获取值。
如果我{{ getTotal(product)[key]}}
我发现了一个奇怪的错误:
MpShopBundle:前端:product_summary.html.twig第89行中不存在键“0,1”的数组的键“12”
我不知道为什么键等于12?也许我必须写一些不同的东西?
更新 谢谢你的答案,我甚至没想过用树枝循环,但我终于得到了一些价值观。但是,我不知道为什么,但是枝条循环为每个产品分配两个值。
应该是这样的:
Product1 : 0(key):145(value)
Product2 : 1:415
但事实就是如此:
Product1 : 0:145 1:415
Product2 : 0:145 1:415
这是树枝:
{% if product is defined %}
{% for key, item in cart %}
{% for item in product %}
<tr>
<td> <img width="60" src="{{ asset('bundles/mpFrontend/assets/products/4.jpg') }}" alt=""/></td>
<td>{{ item.model }}</td>
<td>
<div class="input-append"><input class="span1" style="max-width:34px" placeholder="1" id="appendedInputButtons" size="16" type="text">
<button class="btn" type="button"><i class="icon-minus"></i></button>
<button class="btn" type="button"><i class="icon-plus"></i></button>
<button class="btn btn-danger" type="button"><a href="{{ path('cart_remove', {'id': key}) }}"><i class="icon-remove icon-white"></i></button>
</div>
</td>
<td>{{ item.price }}</td>
<td>{{ item.discount }}</td>
<td>{{ item.value }}</td>
{% if getTotal(product) is iterable %}
{% for key, sum in getTotal(product) %}
<td>{{ key }}:{{ sum }}</td>
{% endfor %}
{% endif %}
</tr>
{% endfor %}
答案 0 :(得分:0)
使用twig for loop:
{% for total in getTotal(product) %}
{{ total }}
{% endfor %}
答案 1 :(得分:0)
您可以使用twig for循环。
示例:
{% if getTotal(product) is iterable %}
{% for key, sum in getTotal(product) %}
{{ key }}:{{ sum }}
{% else %}
empty array
{% endfor %}
{% endif %}
答案 2 :(得分:0)
您不应该使用循环,并将您的函数从外部移动到db.users.insert({
forname: 'John',
surname: 'Smith',
DOB: 12061989,
streaming: [{media_content_id: 5000, stream_min: 45, stream_date: 10042015},
{media_content_id: 5001, stream_min: 45, stream_date: 10042015}]
});
db.media_content.insert({
_id: 5000,
content_name: 'FILM B',
durations_min: 45,
content_type_price: {
min_price: 0.002,
}
});
db.media_content.insert({
_id: 5001,
content_name: 'FILM B',
durations_min: 45,
media_type: 'video',
content_type_price: {
min_price: 0.002,
}
});
类的方法。
而不是循环:
product
新功能:
<td>{{ product.total }}</td>