0
장바구니보기에서 항목 수를 변경할 수있는 게시 양식을 만들었습니다. 이 폼은 컨트롤러의 updateCart 메서드로 보내집니다. 수량이 업데이트 중이지만 제대로 저장하지 않는 것 같습니다. 나는 laravel을 처음 사용하므로 설명을 간단하게 유지하십시오. :) 어디서 잘못됩니까?세션에서 아이템 수량을 업데이트하는 방법 laravel?
public function updateCart(Request $request, $productnummer)
{
$aantal = $request->input('update-aantal');
$cart = Session::get('cart');
if (Session::has('cart')) {
foreach($cart->items as $item)
{
if ($item['item']['productnummer'] == $productnummer){
$item['qty'] = $aantal;
break;
}
}
$request->session()->put('cart', $cart);
Session::save();
dd(Session::get('cart'));
}
return view('product.cart', ['products' => $cart->items, 'totalPrice' => $cart->totalPrice]);
}
추가 정보 :
카드 모델
class Cart
{
public $items = null;
public $totalQty = 0;
public $totalPrice = 0;
public function __construct($oldCart)
{
if ($oldCart){
$this->items = $oldCart->items;
//dd($this->items = $oldCart->items);
$this->totalQty = $oldCart->totalQty;
$this->totalPrice = $oldCart->totalPrice;
}
}
public function add($item, $id, $aantal)
{
$storedItem = ['qty' => 0,'price' => $item->prijs, 'item' => $item];
if ($this->items){
if (array_key_exists($id, $this->items)) {
$storedItem = $this->items[$id];
}
}
$storedItem['qty'] += $aantal;
$storedItem['price'] = $item->prijs * $storedItem['qty'];
$this->items[$id] = $storedItem;
$this->totalQty += $aantal;
$this->totalPrice += ($item->prijs * $this->totalQty);
}
경로
Route::post('/update-cart/{productnummer}', ['uses' => '[email protected]', 'as' => 'product.updateCart']);
흠, 세션이 새 수량을 저장하지 않는 것 같습니다. – Nielsapp