【问题标题】:How to add instruction with product in Cart如何在购物车中添加产品说明
【发布时间】:2020-11-10 22:22:07
【问题描述】:

这是一个功能齐全的购物车。它可以添加产品并计算数量和总价。但我想听取用户的指示并将其添加到购物车中的产品中。

这是我将产品添加到购物车的正文。

<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');然后发送给 Modal: $cart->add($products, $products->id, $instructions);在模态中在 add 函数中获取指令: public function add($item, $id, $instructions) $storedItem = ['qty' => 0, 'price' => $item->price, 'instructions' => $instructions , '项目' => $项目];然后在函数中提到它:$storedItem['instructions'] = $instructions;

标签: php laravel laravel-5 cart shopping-cart


【解决方案1】:

首先将指令保存在控制器函数内部的一个变量中:

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

注意:产品数组只会保存一条指令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-09
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2023-03-10
    相关资源
    最近更新 更多