我正在向控制器发送数据数组,但它只将 1 行保存到数据库,我需要保存多行(取决于数组长度)。代码controllerpublic function store(Request $request){ $user = Auth::guard('api')->user(); $transit = new Transit; foreach($request->input('serials') as $serial){ //looping my serials array for each row if(!empty($serial['barcode_id'])) { // filter out empty objects from array $barcode = Barcode::where('serial_number', $serial['barcode_id'])->orWhere('u_serial_number', $serial['barcode_id'])->first(); $transit->barcode_id = $barcode['id']; $transit->transNu = mt_rand(1000000000, 9999999999); } } $transit->from_id = $request->input('from_id'); $transit->to_id = $request->input('to_id'); $transit->sender_id = $user->id; $transit->description = $request->input('description'); if($transit->save()){ DB::table('outlet_products')->where('barcode_id', $transit->barcode_id)->update(['outlet_id' => null]); } return response()->json([ 'data' => $transit, 'message' => 'Transit data saved successfully.' ]);}截屏request datastored data
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
移动$transit = new Transit;
到 foreach 内部,并在返回响应之前结束 foreach 循环。
当前设置中发生的情况是,在第一次迭代期间,创建了一个交通对象,并且在保存它时,它将获得一个 id。因此,对于第二次和后续迭代,Transit 对象将具有一个id
并且调用 save 将对update
具有该 id 的记录执行操作。
将它移到 foreach 中总会给你一个新的空Transit
对象,保存会给你一个新记录。
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消