Я работаю над корзиной на веб-сайте, но ее общая стоимость зависит от продуктов.Если добавить три продукта, то общая цена будет отображаться три раза, а если я добавлю два продукта в корзину, то будет отображаться два раза.
cart.blade.php
<table>
<tr class="table-row">
<?php $total_amount = 0; ?>
@foreach($userCart as $cart)
<td class="column-1">
<div class="cart-img-product b-rad-4 o-f-hidden">
<img src="{{ asset('images/backend_images/products/small/'.$cart->image) }}" alt="IMG-PRODUCT">
</div>
</td>
<td class="column-2">{{ $cart->product_name }}</td>
<td class="column-3">PKR: {{ $cart->price }}</td>
<td class="column-4">
<div class="flex-w bo5 of-hidden w-size17">
<a class="cart_quantity_up color1 flex-c-m size7 bg8 eff2"
href="{{ url('/cart/update-quantity/'.$cart->id.'/1') }}">+</a>
<input class="size8 m-text18 t-center num-product" type="number" name="quantity"
value="{{ $cart->quantity }}">
@if($cart->quantity>1)
<a class="cart_quantity_down color1 flex-c-m size7 bg8 eff2"
href="{{ url('/cart/update-quantity/'.$cart->id.'/-1') }}">-</a>
@endif
</div>
</td>
<td class="column-5">PKR: {{ $cart->price }}</td>
<td class="column-6"><a href="{{ url('/cart/delete-product/'.$cart->id)}}">X</a></td>
</tr>
@endforeach
</table>
<!-- Total -->
<div class="flex-w flex-sb-m p-t-26 p-b-30">
@php
$total = 0;
foreach($userCart as $cart) {
$total += ($cart->price * $cart->quantity);
}
@endphp
<span class="m-text22 w-size19 w-full-sm">Total:</span>
<span class="m-text21 w-size20 w-full-sm">{{ $total }}</span>
</div>
ПродуктыКонтроллер
public function addtocart(Request $request)
{
$data = $request->all();
$session_id = Session::get('session_id');
if (empty($session_id)) {
$session_id = str_random(40);
Session::put('session_id', $session_id);
}
DB::table('cart')->insert(['product_id' => $data['product_id'], 'product_name' => $data['product_name'], 'product_code' => $data['product_code'], 'product_color' => $data['product_color'], 'price' => $data['price'], 'size' => $data['size'], 'quantity' => $data['quantity'], 'user_email' => $data['user_email'], 'session_id' => $session_id]);
return redirect('cart')->with('flash_message_success', 'Product has been added in Cart!');
}
public function cart()
{
$session_id = Session::get('session_id');
$userCart = DB::table('cart')->where(['session_id' => $session_id])->get();
foreach ($userCart as $key => $product) {
$productDetails = Product::where('id', $product->product_id)->first();
$userCart[$key]->image = $productDetails->image;
}
return view('products.cart')->with(compact('userCart'));
}