laravel8で、jsonファイル中身のバリデーション(json_decodeで配列にしてValidator::make)
第一弾, フォームのバリデーション
第二弾, JSONファイルのバリデーション
laravelだから都合の良いやり方があるのかな?と思ったけど無かった…。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37  | 
						public function store(Request $request) {     // jsonフィアルは必須・ファイル形式(formタグにenctype="multipart/form-data"属性がないと通ってしまう…。)     $validator = \Validator::make($request->all(), [         'json_file'    => 'required|file',     ]);     if ($validator->fails()) {         return response()->json([             'status' => 400,             'errors' => $validator->errors()         ], 400);     }     // jsonファイルの内容を配列に変換。出来なかったらJSONではないと判定     $json = json_decode($request->file('json_file')->get(),true);     if ($json === NULL) {         return response()->json([             'status' => 400,             'errors' => 'The json file must be a valid JSON string.'         ], 400);     }     // jsonの中身のバリデーション     $rules = [         'Type' => 'required|integer',         'Mode' => 'required|integer',         'List' => 'required|array',     ];     $validator = \Validator::make($json, $rules);     if ($validator->fails()) {         return response()->json([             'status' => 400,             'errors' => $validator->errors()         ], 400);     }     // 保存処理を書く }  |