首页 > 解决方案 > 购物车 ADD-TO-CART 按钮未在 laravel 5.7 中获取数据

问题描述

添加到购物车 我得到了输出,但它没有将数据添加到购物车按钮

Cart {#196 ▼
  +items: null
  +totalQty: 0
  +totalprice: 0
}

大车:

<?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;
        }
    }
}

控制器:

public function getAddtoCart(Request $request, $id)
{
    //return 'hello';

    $product = Product::find($id);

    //echo "<pre>"; print_r($product); die();

    $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('/Carting_page');

}

当用户选中一个或多个框并按“添加到购物车”时,我希望该项目显示在

请解决我的问题我没有得到这个方法,我正在尝试解决我的问题......

标签: phplaravel

解决方案


尝试这个:

Cart.php

   public $quantity = 0;
   public $total = 0;

   public function __construct($oldCart)
   {
    if($oldCart){
        $this->items = $oldCart->items;
        $this->quantity = $oldCart->quantity;
        $this->total = $oldCart->total;
    }
   }

   public function add($item, $id)
   {
    $storedItem = ['quantity' => 0, 'price' => $item->price, 'item' => $item];

    if($this->items){
        if(array_key_exists($id, $this->items)){
            $storedItem = $this->items[$id];
        }
    }

    $storedItem['quantity']++;
    $storedItem['price'] = $item->price * $storedItem['quantity'];
    $this->quantity++;
    $this->total += $item->price;
    $this->items[$id] = $storedItem;
   }

CartController.php

   public function getProduct(Request $request, $id)
   {
      $product = Product::find($id);
      $size = $request->get('size');
      $oldCart = Session::has('cart') ? Session::get('cart') : null;
      $cart = new Cart($oldCart);
      $cart->add($product, $product->id);
      $request->session()->put('cart', $cart);
      return back();

   }

web.php

Route::post('add/{id}', 'Products\CartController@getProduct')->name('cart.add');

或者

Route::get('add/{id}', 'Products\CartController@getProduct')->name('cart.add');


推荐阅读