Я занимаюсь разработкой проекта корзины покупок Laravel. Я использую Laravel версии 6.1.0. Я хочу обновить элемент корзины, когда пользователь нажал кнопку «Добавить в корзину». Но проблема в том, что когда я запускаю приложения в localhost и пытаюсь добавить несколько элементов в список корзины, количество элементов не обновляется.
Вот мой код Header.blade.php.
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Brand</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><i class="fa fa-shopping-cart" aria-hidden="true"></i> Shopping Cart
<span class="badge">{{ Session::has('cart') ? Session::get('cart')->totalQty : '' }}</span>
</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-user" aria-hidden="true"></i> User Mangemetn <span class="caret"></span></a>
<ul class="dropdown-menu">
@if(Auth:: check())
<li><a href="{{ route('user.profile')}}">User Profile</a></li>
<li><a href="{{ route('user.logout')}}">Logout</a></li>
@else
<li><a href="{{ route('user.signup')}}">Sign Up</a></li>
<li><a href="{{ route('user.signin')}}">Sign In</a></li>
@endif
<li role="separator" class="divider"></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
Вот код productController.
<?php
namespace App\Http\Controllers;
use App\Product;
use Session;
use App\Cart;
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function getIndex(){
$products = Product::all();
return view('shop.index',['products' => $products]);
}
public function getAddToCart(Request $request, $id)
{
$product= Product::find($id);
$oldCart= Session::has('cart') ? Session::get('cart') : null;
$cart = new Cart($oldCart);
$cart->add($product,$product->id);
$request->session()->put('cart',$cart);
//dd($request ->session()->get('cart'));
return redirect()->route('product.index');
}
}
Вот файл cart.php.
<?php
namespace App;
class Cart
{
public $items=null;
public $totalQty=0;
public $totalPrice =0;
public function _construct($oldCart)
{
if($oldCart)
{
$this->items = $oldCart->items;
$this->totalQty = $oldCart->totalQty;
$this->totalPrice = $oldCart->totalPrice;
}
}
public function add($item, $id)
{
$storedItem= ['qty' =>0, 'price' => $item->price,'item'=>$item];
if($this->items)
{
if(array_key_exists($id,$this->items)){
$storedItem =$this->items($id);
}
}
$storedItem['qty']++;
$storedItem['price'] = $item->price * $storedItem['qty'];
$this->items[$id] = $storedItem;
$this->totalQty++;
$this->totalPrice += $item->price;
}
}
Вот снимок экрана, когда я запускаю приложения. ![enter image description here](https://i.stack.imgur.com/MqwMh.png)