【发布时间】:2016-11-25 17:18:17
【问题描述】:
每次我按下添加到购物车按钮时,旧购物车都会替换新购物车,而不是将新商品添加到旧购物车中,并且如果存在,它不会更新数量。以下是代码和图像。
我的 Cart.php 模型
class Cart{
public $spares=null;
public $totalQuantity=0;
public $totalPrice=0;
public function __construct($oldCart){
if($oldCart){
$this->spares=$oldCart->spares;
$this->totalPrice=$oldCart->totalQuantity;
$this->totalQuantity=$oldCart->totalQuantity;
}
else{
$this->spares=null;
}
}
public function add($spare,$id){
$storedItem=['qty' => 0,'price'=>$spare->price,'item'=>$spare];
if($this->spares){
if(array_key_exists($id,$this->spares)){
$storedItem=$this->spares[$id];
}
}
$storedItem['qty']++;
$storedItem['price']= $spare->price*$storedItem['qty'];
$this->spares[$id]=$storedItem;
$this->totalQuantity++;
$this->totalPrice+=$spare->price;
}
}
我的路线
Route::get('/addToCart/{id}',['uses'=>'searchController@getAddToCart',
'as'=>'product.addToCart'] );
我的控制器
public function getAddToCart(Request $request,$id){
$spares=Spares::find($id);
$oldCart=Session::has('cart')? Session::get('cart'):null;
$cart=new Cart($oldCart);
$cart->add($spares,$spares->id);
$request->session()->put('cart',$cart);
dd($request->session())->get('cart');
return redirect()->back();
}
这是我目前得到的会话图像,我不知道这个 Store 对象是什么。我无法通过名称“购物车”访问
我应该得到的方式如下
非常感谢您。
【问题讨论】:
标签: php session laravel-5 session-variables