2017-03-22 9 views
0

を置き換える:がarrayからプロパティを取得し、私はこの配列を持つ

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']から呼び出した加算値を除いて完璧に機能します。この値は注文が行われたときに保存されるので、合計額を米ドルに、合計をEURで表示します。

ここでの問題は、${{ $item->price * $item->quantity }}も含まれています。配送は無料です。 $ 0はページに表示されます

Test Product 1 $122/€113  
Free Delivery $0/€113 

私がしようとしているのは、配信が無料のときに何とか置き換えることです。代わりに0と表示する["shipping"]=>["price"] = 0このようにする:

Test Product 1 $122/€113  
Free Delivery $0/€0 

私はforeachループでそれを変更することができますどのように私はこの

<?php $shipping = $order->getOrderData($order->order_details)->shipping->price; ?> 

のようにアクセスすることができますしかし、私はそれを考え出したことはできません。

私はこれを明確に理解していただきたいと思います。誰でも働くかもしれない何かを提案できますか?

更新: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

非常に混乱しますか? foreachループの中で簡単なのでしょうか? –

+0

@SaravananSampathkumar、私は試みたif条件で私の質問を更新しました –

+0

いいえ、価格がゼロの場合、@if($ item-> price)のようにチェックし、それ以外の場合は通常のものです。 –

答えて

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 

の両方ユーロの価格を示すならば、私はこの単純なを試してみました。もしそうなら、€を表示しています。それ以外の場合は、実際のコストを表示しています。

+0

はい、これは私が尋ねた質問のための仕事です。私はここに欠けているものがあることを知りました。ありがとう –

+0

しかし、配達はゼロと異なることができます..支払われたもの。上記のコードの意味は、再度total_eurを表示します –

関連する問題