【发布时间】: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