需要使用 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

Laravel:获取有关队列作业的详细信息

如何将数组数据从 vuejs 传递到 laravel api 控制器

通过详细信息页面添加产品数量的问题

Magento 购物车支付方法步骤,将 CC 详细信息发布到支付网关端点?

在laravel中将多个数据插入数据库