【问题标题】:need to insert cart details into Mysql database using Laravel需要使用 Laravel 将购物车详细信息插入 Mysql 数据库
【发布时间】: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 格式的数据吗?

标签: mysql laravel vue.js


【解决方案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 你仍然可以参考我已经更新的解决方案。
猜你喜欢
  • 1970-01-01
  • 2017-03-02
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 2013-05-21
  • 2014-04-24
  • 1970-01-01
相关资源
最近更新 更多