2017-07-22 4 views
1

ここで解決する問題があります、私はカートの総価格を計算する必要がありますすべての商品価格とそれらに乗算ピボットテーブルの合計。laravel

複数の商品をショッピングカートに追加しています。彼らはピボットで価格と数量を持っています。このような 何か:

{ 
"id": 1, 
"user_id": "1", 
"status": "closed", 
"total_price": "100", 
"created_at": "2017-07-22 06:06:17", 
"updated_at": "2017-07-22 08:02:04", 
"skues": [ 
    { 
     "id": 1, 
     "title": "مربعی ۵x2", 
     "description": "مربعی ۵x2، مربعی ۵x2 است.", 
     "sku_card_theme": "#2222", 
     "visible": "hidden", 
     "price": "50", 
     "category_id": "2", 
     "created_at": "2017-07-22 06:50:02", 
     "updated_at": "2017-07-22 07:16:33", 
     "pivot": { 
      "cart_id": "1", 
      "sku_id": "1", 
      "feature": "{\"size\": \"big\",\"quantity\": 2}", 
      "image_path": "images/users5e51d08006fed056b19db7d041d5688f.jpeg", 
      "id": 1 
     } 
    }, 
    { 
     "id": 1, 
     "title": "مربعی ۵x2", 
     "description": "مربعی ۵x2، مربعی ۵x2 است.", 
     "sku_card_theme": "#2222", 
     "visible": "hidden", 
     "price": "50", 
     "category_id": "2", 
     "created_at": "2017-07-22 06:50:02", 
     "updated_at": "2017-07-22 07:16:33", 
     "pivot": { 
      "cart_id": "1", 
      "sku_id": "1", 
      "feature": "{\"size\": \"big\",\"quantity\": 2}", 
      "image_path": "images/users/416e9f70dee50547866e9e89696d16e3.jpeg", 
      "id": 2 
     } 
    }, 
    { 
     "id": 3, 
     "title": "تقویم دیواری", 
     "description": "سشیشیش", 
     "sku_card_theme": "#2222", 
     "visible": "hidden", 
     "price": "25", 
     "category_id": "3", 
     "created_at": "2017-07-22 07:56:45", 
     "updated_at": "2017-07-22 07:56:45", 
     "pivot": { 
      "cart_id": "1", 
      "sku_id": "3", 
      "feature": "{\"size\": \"big\",\"quantity\": 2}", 
      "image_path": "images/users/273c1f5e3324815a82060931f30ead97.jpeg", 
      "id": 3 
     } 
    }, 

] 

私はここにすべてのskues価格を合計し、そのピボット量によってそれらを乗算したい、私は、laravelコレクションeachや他のアプローチをforeachのようないくつかの方法を試してみました...

しかし、私答えがない。

私のコードサンプル:

$skues->each(function ($item) { 
    $quantity = json_decode($item->pivot->feature)->quantity; 
    $price = $item->price; 
}); 
$total_price = $quantity * $price; 

それは$quantity$priceは未定義の変数であることを私に言って、エラーが発生しました。

、これが私のforeachの方法である:

foreach ($cart->skues as $skue) { 
    $quantity = json_decode($skue->pivot->feature)->quantity; 
    $total_price = $skue->price * $quantity; 
} 
$cart->update([ 
    'total_price' => $total_price, 
]); 

ありがとうございました。

+0

あなたは($アイテム - >ピボット)のvar_dumpエコーすることができますし、何を参照するかを教えて? –

答えて

1

私は最終的にそれを固定:

public function total($cart) { 
     $cart->update([ 
          'total_price' => NULL, 
         ]); 
     $cart->skues->each(function ($item) { 
      $user  = auth()->user(); 
      $quantity = json_decode($item->pivot->feature)->quantity; 
      $price  = $item->price; 
      $total_price = $price * $quantity; 
      $user->cart->update([ 
            'total_price' => $total_price + $user->cart->total_price, 
           ]); 
     }); 
    } 
+0

おそらく最良の解決策ではありませんが、それは動作します!誰もがより良い答えを知っている – Katerou22