簡體   English   中英

使用Laravel會話添加到購物車

[英]Add to Cart Using Laravel Session

我正在使用laravel會話在網絡瀏覽器上存儲購物車信息,但是在測試時卻收到此錯誤“試圖獲取非對象的屬性”。 有什么見解嗎? 第一個代碼段是控制器,然后是我的模型。我正在使用兩個foreach來檢索產品信息,然后以模態顯示它們,用戶現在可以將其添加到購物車中。

  public function addtoCart(Request $request, $id){ $product = Product::find($id); $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()->back()->with('flash_message_success', 'Added Successfully'); } 

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

Product :: find($ id),您的表中可能不存在傳遞的ID。 確保通過實際記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM