需要使用 Laravel 将购物车详细信息插入 Mysql 数据库
Posted
技术标签:
【中文标题】需要使用 Laravel 将购物车详细信息插入 Mysql 数据库【英文标题】:need to insert cart details into Mysql database using Laravel 【发布时间】:2020-07-09 03:41:01 【问题描述】:我有一个问题,关于如何使用 Laravel 将我的购物车详细信息插入我的数据库。我得到了这样的请求数据。
cart: [
0:
product:
product_id: 1,
product_name: "Item One"
,
quantity: 4
,
1:
product:
product_id: 2,
product_name: "Item two"
,
quantity: 7
]
我需要使用 Laravel 控制器将这些数据添加到 mysql 数据库中。我不知道编写控制器函数来使用自动生成的唯一 order_id 管理这些数据。我从我的前端 VueJs 代码中得到了这个数组。 谁能帮我解决这个问题?
我的请求->all() 数据看起来像这样
array:1 [
""cart":" => array:1 [
""product":"id":1,"category":1,"product_name":"Brinjal 500g","product_image":"1585409454.jpeg","product_price":232,"unit":"500g","product_description":null,"stock":"In Stock","product_status":1,"show":1,"delievery_date":null,"vendor":null,"quantity":18,"item_type":"feature_product","created_at":"2020-03-28T15:30:54.000000Z","updated_at":"2020-03-28T15:30:54.000000Z","deleted_at":null,"categories":"id":1,"category_name":"Fresh Fruits","category_image":null,"category_description":null,"category_status":1,"show":0,"created_at":"2020-03-28T15:30:12.000000Z","updated_at":"2020-03-28T15:30:12.000000Z","deleted_at":null,"quantity":1" => null
]
]
【问题讨论】:
你的数据库结构是什么。你也可以分享一下,以便我们获得更多想法。 我对制作结构一无所知。但我只需要在同一张表中插入product_id、product_name、数量 你获取的是 json 格式的数据吗? 【参考方案1】:插入数据:
Model::create($data);
更新数据:
Model::where('id', $id)->update($data);
【讨论】:
如何在控制器函数中将这些数据获取到我的查询列 $OrderPro = 新订单产品; $OrderPro->order_id = $order_id; $OrderPro->product_id = $data['product_id'];【参考方案2】:遍历传入的数据并制作如下所示的数组。
通过创建数据数组并将数组作为批量数据插入数据库来试试这个:
// this will decode your json data that you're getting in the post data
$postdata = json_decode($postdata, true);
$data = [];
foreach ($postdata as $key => $value)
$data[$key]['product_id'] = $value['product']['id'];
$data[$key]['product_name'] = $value['product']['product_name'];
$data[$key]['quantity'] = $value['quantity'];
// $data now will have data as following structure
$data = [[
'product_id' => 2,
'product_name' => "Item two",
'quantity' => 7
],
[
'product_id' => 2,
'product_name' => "Item two",
'quantity' => 7
]];
$order = Order::create($data);
【讨论】:
我怎样才能使我的购物车数组像这样排序 @K.Mihiranga 我已经更新了答案。看看它。 我像上面一样更新了我的代码。 ($postdata = json_decode($request->cart, true);) 。但它向我显示了这个错误:为 foreach() 提供的参数无效 我更新了我上面的问题,请求数据在服务器中的样子 @K.Mihiranga 你仍然可以参考我已经更新的解决方案。以上是关于需要使用 Laravel 将购物车详细信息插入 Mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章
获取购物车商品名称、数量所有详细信息 woocommerce
如何将数组数据从 vuejs 传递到 laravel api 控制器