购物车仍显示已删除的产品Laravel

时间:2019-11-01 17:26:41

标签: php laravel laravel-5

我具有此功能,该功能允许用户将产品添加到购物车,但是如果在管理面板中删除了该产品,但该产品仍显示在购物车中,关于如何删除已在管理控制台中删除的购物车中的产品的任何想法?

因此,我尝试使用此方法检查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,
        ]);

2 个答案:

答案 0 :(得分:0)

您从管理面板中删除了产品,但不更新会话,该会话中仍然存在该产品。尝试获取仅会话ID的产品,并尝试在控制器中获取具有此ID的db数据,然后再进行查看。

答案 1 :(得分:0)

每次删除操作后,您都必须更新存储在会话中的值。在laravel中(根据其官方文档),您可以按照以下步骤进行操作。

    $request->session()->forget('removed_product_id',$id);

或者如果您想使用会话外观

    Session::forget('removed_product_id',$id);

在每次删除操作后调用此语句。您可以在删除控制器功能中调用它们。