php - 购物车 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');
}
当用户选中一个或多个框并按“添加到购物车”时,我希望该项目显示在
请解决我的问题我没有得到这个方法,我正在尝试解决我的问题......
解决方案
尝试这个:
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');
推荐阅读
- python - 使用 pyspark 包含 1 到 3 个 n-gram 的 TF-IDF
- sql-server - 减少 EF Core 字符串鉴别器列大小以允许索引
- javascript - console.log 不断返回“登录错误”而不是“登录”
- javascript - 在 js 或 jquery 中更改 YouTube 的 css 背景值?
- javascript - JS 脚本在 Thymeleaf 模板中不起作用
- python - 蟒蛇 MySQL。如何从字典中插入重复键更新
- python - 在 Django 中使用 For 循环和 If 条件在 Bootstrap Carousel 中显示图像
- python - 索引列表的值
- c++ - 从共享库加载 Qt SQL 驱动程序插件
- python - yfinance 给出错误的数字