簡體   English   中英

如何在購物車中添加產品說明

[英]How to add instruction with product in Cart

這是一個功能齊全的購物車。 它可以添加產品並計算數量和總價。 但我想從用戶那里獲取說明並將其添加到購物車中的產品中。

這是我將產品添加到購物車的主體。

<form action="{{ route('product.addToCart') }}">
   @csrf
   <input hidden name="products_id" id="products_id">   // It contains the product id
   <input name="instructions" id="instructions">       // Section from where I need to send instructions with each product
   <button type="submit" class="btn theme-btn">Add to cart</button>
</form>

這是控制器:

public function getAddToCart(Request $request)
{
    $products = Products::find($request->products_id);
    $instructions = $request->input('instructions');
    $oldCart = Session::has('cart') ? Session::get('cart') : null;
    $cart = new Cart($oldCart);
    $cart->add($products, $products->id, $instructions); // It is sending Product and it's Id in Cart Model

    $request->session()->put('cart', $cart);

    $oldCart = Session::get('cart');
    $cart = new Cart($oldCart);
    return redirect('/');
}

這是購物車模式:

public function add($item, $id, $instructions) {
    $storedItem = ['qty' => 0, 'price' => $item->price, 'instructions' => $instructions, 'item' => $item];
    if ($this->items) {
        if (array_key_exists($id, $this->items)) {
            $storedItem = $this->items[$id];
        }
    }
    $storedItem['qty']++;
    $storedItem['price'] = $item->price * $storedItem['qty'];
    $storedItem['instructions'];
    $this->items[$id] = $storedItem;
    $this->totalQty++;
    $this->totalPrice += $item->price;
}

首先將指令保存在控制器函數內的變量中:

$instructions = $request->input('instructions');

現在將其發送到購物車模態:

$cart->add($products, $products->id, $instructions);

控制器功能是這樣的:

public function getAddToCart(Request $request)
{
    $products = Products::find($request->products_id);
    $instructions = $request->input('instructions');
    $oldCart = Session::has('cart') ? Session::get('cart') : null;
    $cart = new Cart($oldCart);
    $cart->add($products, $products->id, $instructions);

    $request->session()->put('cart', $cart);

    $oldCart = Session::get('cart');
    $cart = new Cart($oldCart);
    return redirect('/');
}

現在在 Modal 中獲取 $instruction 變量並將其保存在購物車中:

public function add($item, $id, $instructions) {
    $storedItem = ['qty' => 0, 'price' => $item->price, 'instructions' => $instructions, 'item' => $item];
    if ($this->items) {
        if (array_key_exists($id, $this->items)) {
            $storedItem = $this->items[$id];
        }
    }
    $storedItem['qty']++;
    $storedItem['price'] = $item->price * $storedItem['qty'];
    $storedItem['instructions'] = $instructions;
    $this->items[$id] = $storedItem;
    $this->totalQty++;
    $this->totalPrice += $item->price;
}

注意:只有一條指令將與產品陣列一起保存。

暫無
暫無

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

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