我有这个数组:
object(stdClass)#458 (2) {
["1"]=>
object(stdClass)#456 (3) {
["title"]=>
string(3) "Test Product 1"
["quantity"]=>
int(1)
["price"]=>
int(1221)
}
["shipping"]=>
object(stdClass)#457 (3) {
["quantity"]=>
int(1)
["title"]=>
string(13) "Free Delivery"
["price"]=>
int(0)
}
}
我在页面上显示这个。
@foreach($order->getOrderData($order->order_details) as $itemId =>
<?php $total += ($item->price * $item->quantity); ?>
<h4 class="media-heading">{{ $item->title }}</h4>
{{ $item->quantity }}
${{ $item->price * $item->quantity }} / €{{ $order['total_eur'] }}
@endforeach
到目前为止,除了我从数据库$order['total_eur']
调用的加值之外,一切都很完美。下订单时会保存此值,因此我以美元显示总金额,以欧元显示总金额。
这里的问题是${{ $item->price * $item->quantity }}
还包含运费,而且运费是免费的,例如页面上显示$ 0
Test Product 1 $122 / €113
Free Delivery $0 / €113
我要做的是在交货时免费更换,例如["shipping"]=>["price"] = 0
代替0
。是这样的:
Test Product 1 $122 / €113
Free Delivery $0 / €0
我可以像这样访问它
<?php $shipping = $order->getOrderData($order->order_details)->shipping->price; ?>
但我无法弄明白如何在foreach
循环中更改它。
我希望我解释清楚易懂。任何人都可以建议一些可行的方法吗?
更新:如果在foreach内部我已经尝试过这么简单,但仍然显示两者都是欧元价格
${{ $item->price * $item->quantity }}
@if( ! $order->getOrderData($order->order_details)->shipping)
{{ $order->getOrderData($order->order_details)->shipping->price }}
@else
€{{ $order['total_eur'] }}
@endif
答案 0 :(得分:1)
@foreach($order->getOrderData($order->order_details) as $itemId => $item)
<?php $total += ($item->price * $item->quantity); ?>
<h4 class="media-heading">{{ $item->title }}</h4>
{{ $item->quantity }}
@if ($itemId == "shipping" && $item->price == 0)
$0 / €0
@else
${{ $item->price * $item->quantity }} / €{{ $order['total_eur'] }}
@endif
@endforeach
这里我们正在检查数组是否是运输项目,价格是否设置为零。如果是这样我们显示零€,否则我们显示实际成本。