【问题标题】:Undefined property: Symfony\\Component\\HttpFoundation\\ParameterBag::$product_id"未定义的属性:Symfony\\Component\\HttpFoundation\\ParameterBag::$product_id"
【发布时间】:2021-01-23 08:21:49
【问题描述】:

这是一个 laravel vue 项目。我想更新我的购物车。
发送到控制器的请求看起来像

我的控制器

public function update(Request $request)
    {
        $carts = Auth::user()->carts;
        foreach ($carts as $cart){
           $cart->delete();
        };

        foreach ($request as $data){
            $newCart = new Cart();
            $newCart->user_id = Auth::id();
            $newCart->product_id = $data->product_id;
            $newCart->variant_id = $data->variant_id;
            $newCart->color_id = $data->color_id;
            $newCart->quantity = $data->quantity;
            $newCart->save();
        }

        return response()->json('Cart Successfully Updated',200);
    }

现在为什么我面临未定义的属性:Symfony\Component\HttpFoundation\ParameterBag::$product_id" 错误

【问题讨论】:

  • A Request 是一个具有公共属性的对象,所以当你迭代它时你会得到它们,而不是输入......你可能希望迭代 $request->all()$request->json()
  • 谢谢#lagbox,$request->all() 工作正常

标签: php laravel


【解决方案1】:
$.ajax({
  url: "your/route",
  type: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  data: JSON.stringify([{"id":13,"user":1,"product":4},{"id":4,"user":8,"product":4},{"id":6,"user":90,"product":23}]),
  success: function (result) {
    console.log(result);
  }
});

假设您使用上述设置和数据提交 ajax 请求,您可以轻松地在控制器中通过它,例如:

foreach ($request->all() as $data){
    // your code here.
    // You can access each item's data like: $data->id, $data->user etc.
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    相关资源
    最近更新 更多