我具有此功能,该功能允许用户将产品添加到购物车,但是如果在管理面板中删除了该产品,但该产品仍显示在购物车中,关于如何删除已在管理控制台中删除的购物车中的产品的任何想法?
因此,我尝试使用此方法检查ID是否存在,并且出现错误Call to a member function isEmpty() on integer
结帐控制器
public function store(Request $request)
{
foreach(session('cart') as $productId =>$item);
$product = product::find($productId);
if(!$productId->isEmpty())
//Insert into orders table
$order = Order::create([
'shipping_email' => $request->email,
'shipping_name' => $request->name,
'shipping_city' => $request->city,
'user_id'=> auth()->user()->id,
]);
//Insert into order product table
if ($order) {
$total = 0;
foreach(session('cart') as $productId =>$item) {
if (empty($item)) {
continue;
}
$product = product::find($productId);
OrderProduct::create([
'order_id' => $order->id ?? null,
'product_id' => $productId,
// $products=DB::table('products')->where('id',$id)->get();
'quantity' => $item['quantity'],
'Subtotal' =>$item['price'] * $item['quantity'],
'total' => $total += $item['price'] * $item['quantity'],
'price' => $product->price,
'name' => $product->name,
'info' => $product->info,
]);
答案 0 :(得分:0)
您从管理面板中删除了产品,但不更新会话,该会话中仍然存在该产品。尝试获取仅会话ID的产品,并尝试在控制器中获取具有此ID的db数据,然后再进行查看。
答案 1 :(得分:0)
每次删除操作后,您都必须更新存储在会话中的值。在laravel中(根据其官方文档),您可以按照以下步骤进行操作。
$request->session()->forget('removed_product_id',$id);
或者如果您想使用会话外观
Session::forget('removed_product_id',$id);
在每次删除操作后调用此语句。您可以在删除控制器功能中调用它们。