【问题标题】:Input data to Laravel Restful API using JSON使用 JSON 向 Laravel Restful API 输入数据
【发布时间】:2019-03-08 03:05:00
【问题描述】:

我正在尝试将一些数据发布到我的应用程序中的 Restful API,但当 JSON 包含多组数据时,我没有成功。

这是我的 JSON 示例:

  "data": [     {
        "client_id": "3",
        "veiculo_id": "3",
        "carreta1_id": "3",
        "carreta2_id": "3",
        "motorista1_id": "3",
        "motorista2_id": "3",
        "embarcador_id": "3",
        "inicioprevisao": "2018-10-10 11:00:00",
        "fimprevisao": "2018-10-10 18:00:00",
        "nroliberacao": "3"
     },     
       {
        "client_id": "4",
        "veiculo_id": "4",
        "carreta1_id": "4",
        "carreta2_id": "4",
        "motorista1_id": "4",
        "motorista2_id": "4",
        "embarcador_id": "4",
        "inicioprevisao": "2018-10-10 11:00:00",
        "fimprevisao": "2018-10-10 18:00:00",
        "nroliberacao": "4"
        }   
   ] }

这是我的控制器:

public function storeapi(Request $request)
    {
      $array = $request->all();
        foreach ($array['data'] as $row) {
            return Sm::create([
                'client_id' => $row['client_id'],
                'veiculo_id' => $row['veiculo_id'],
                'carreta1_id' => $row['carreta1_id'],
                'carreta2_id' => $row['carreta2_id'],
                'motorista1_id' => $row['motorista1_id'],
                'motorista2_id' => $row['motorista2_id'],
                'embarcador_id' => $row['embarcador_id'],
                'inicioprevisao' => $row['inicioprevisao'],
                'fimprevisao' => $row['fimprevisao'],
                'nroliberacao' => $row['nroliberacao']    
            ]);
      }
}

这样做,我只有第一个块放入数据库,我需要这两个块。 我遵循这篇文章,但无法正常工作。 laravel 5.6 bulk inserting json data

【问题讨论】:

  • 因为你制作了return,它最终会停止进一步的执行。同样在您提供的链接中,您在 foreach 循环中看不到 return 语句。

标签: json laravel rest api


【解决方案1】:

出现问题是因为您在 foreach 循环中使用了 return。我猜你这样做是因为你想return 插入元素的 ID,所以最好这样:

$array = $request->all();
$insertedIds = [];
    foreach ($array['data'] as $row) {
        $newSm = Sm::create([
            'client_id' => $row['client_id'],
            'veiculo_id' => $row['veiculo_id'],
            'carreta1_id' => $row['carreta1_id'],
            'carreta2_id' => $row['carreta2_id'],
            'motorista1_id' => $row['motorista1_id'],
            'motorista2_id' => $row['motorista2_id'],
            'embarcador_id' => $row['embarcador_id'],
            'inicioprevisao' => $row['inicioprevisao'],
            'fimprevisao' => $row['fimprevisao'],
            'nroliberacao' => $row['nroliberacao']    
        ]);
        $insertedIds[] = $newSm->id;
  }
  //Now we can return an array with the inserted elements' IDs
  //In this case, since this is coming from a JSON, we'll answer the same way.
  return response()->json($insertedIds);

【讨论】:

  • 问题已解决。这正是你所说的。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 2018-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
相关资源
最近更新 更多