这些是购物车详细信息
$cart[$id] = [
"name" => $food->food_item,
"quantity" => 1,
"price" => $food->price,
"restaurant" =>$food->restaurant_id,
];
session()->put('cart', $cart);
我希望当用户单击按钮下达订单时将这些项目详细信息保存在订单表中的相应字段中 //创建订单
order= new Order;
我将如何保存购物车?
答案 0 :(得分:0)
在确认后,使用Order
模型将购物车信息保存在数据库中,而不是将其保留在会话中,以避免在刷新后将其丢失
$order = Order::create([
"name" => $food->food_item,
"quantity" => 1,
"price" => $food->price,
"restaurant" =>$food->restaurant_id,
]);
此处的旁注:我建议使用this package来管理您的购物车,并使用其数据库驱动程序来避免所有的麻烦(不要重蹈覆辙)
答案 1 :(得分:0)
首先,您必须创建一个Order模型的新实例。然后,
$order = new Order();
$order->food = $food->food_item;
$order->quantity = 1;
$order->price = $food->price;
$order->restaurant = $food->restaurant_id;
$order->save();
答案 2 :(得分:0)
您的问题尚不清楚,但是我想您想保存订单详细信息。为此,您需要为Order
和OrderItem
创建一个关系,以便在保存cart
详细信息时,它将在Order
表中保存一个订单,并且将订单商品保存在OrderItem
表中。
您可以通过这种方式获得购物车。
$oldCart = Session::get('cart');
$cart = new Cart($oldCart);
$order = new Order;
$order->quantity = 1;
$order->price = $food->price;
$order->restaurant = $food->restaurant_id;
$order->customer_id = auth()->user()->id; // you can add this to tag the customer info
$order->save();
$orderItems = [];
foreach ($cart->items as $ItemId => $item) {
$orderItems[] = [
'order_id' => $order->id,
'food_id' => $foodId
'quantity' => $item['qty']
];
}
OrderItem::insert($orderItems);
});