【问题标题】:How to decrement product quantity after checkout in Laravel (With Session)如何在 Laravel 结账后减少产品数量(带会话)
【发布时间】:2020-12-16 23:15:17
【问题描述】:

你能帮我结帐后如何减少吗?到目前为止,这是我唯一的想法,但它显示了一个名为“类 Illuminate\Database\Eloquent\Collection 的对象无法转换为数字”的错误 “。谢谢你的回复。我也用的是带会话的。

注意。我编辑并放了另一张图片以获得更清晰的解释,这是代码

public function postCheckout(Request $request){
        $books = Product::all();
        if (!Session::has('cart')){
             return view('shop.shoppingcart');

        }
        $oldCart = Session::get('cart');
        $cart = new Cart($oldCart);
        $order = new Order();
        $order->cart = serialize($cart);
        $order->address = $request->input('address');
        $order->name = $request->input('name');
        
        Auth::user()->orders()->save($order);
        
        $q=$cart->totalQty;
        $r=$books-$q;
      Product::table('books')
      ->where('id',$id) 
    
      ->update(array('quantity' => $r));
        Session::forget('cart');

        return redirect("home");
    }

错误是“类 Illuminate\Database\Eloquent\Collection 的对象无法转换为数字”

【问题讨论】:

  • 应该是“$books = Product::all();”但它显示一个名为“类 Illuminate\Database\Eloquent\Collection 的对象无法转换为数字”的错误
  • 欢迎SO ...请不要放代码图片,代码是文字
  • @AndySong 好吧,我开始添加另一张图片以使其更清晰
  • 我现在放的一件事有一个 $book = Product::all() 并显示错误“类 Illuminate\Database\Eloquent\Collection 的对象无法转换为数字”。抱歉不知道如何在评论中上传图片(idk,如果 stackover 有它的功能)
  • 是的,如果你在这里推送你的代码会更容易:)

标签: laravel session laravel-5 shopping-cart


【解决方案1】:

你有这行代码:

    $books = Product::all();

这里,$books 是一个集合。

几行之后,这个:

    $r=$books-$q;

这当然不能毫无错误地执行,因为您试图从集合中减去一个数字。

我假设您实际上并不想要整个图书收藏,而是图书的数量。在这种情况下,将$books = Product::all(); 替换为 $books = Product::count();,您的代码应该可以正常工作。

但是,该行计算了所有本书,我猜你只想减少购买本书的数量。不幸的是,这不是你的代码所做的。例如,在这段代码中:

  Product::table('books')
      ->where('id',$id) 
      ->update(array('quantity' => $r));

$id 变量从何而来?您不会在任何地方设置它的值。您应该做的是迭代购物车中的每件商品,获取每件商品的 ID 和数量,并对每件商品执行更新查询。

【讨论】:

    猜你喜欢
    • 2020-09-05
    • 1970-01-01
    • 2017-11-13
    • 2017-01-28
    • 2016-08-16
    • 2021-11-24
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    相关资源
    最近更新 更多