繁体   English   中英

使用JSON将数据输入Laravel Restful API

[英]Input data to Laravel Restful API using JSON

我正在尝试将一些数据发布到我的应用程序中的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批量插入json数据

之所以发生此问题,是因为您在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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM