2017-11-08 16 views
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']); 

답변

0

시도 세션 :: 넣어 ('카트', $ 나는 다음을 시도 cart) 대신 $ request-> session() -> put ('cart', $ cart)을 사용하십시오. 전에 $ request-> session()을 사용한 적이 없지만 글로벌 세션이 아닌 요청의 세션 만 수정하는 것처럼 보입니다.

편집 : 예, 요청 클래스의 session() 메소드를 보면 "요청과 관련된 세션 가져 오기"라는 메시지가 표시되므로 Session :: get ('cart') 그 글로벌 세션에서 가져옵니다.

+0

흠, 세션이 새 수량을 저장하지 않는 것 같습니다. – Nielsapp