diff --git a/Laravel/app/Http/Controllers/API/Internal/HealthCertificateController.php b/Laravel/app/Http/Controllers/API/Internal/HealthCertificateController.php index b423b69..8822642 100644 --- a/Laravel/app/Http/Controllers/API/Internal/HealthCertificateController.php +++ b/Laravel/app/Http/Controllers/API/Internal/HealthCertificateController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\API\Internal; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; @@ -57,7 +58,7 @@ class HealthCertificateController extends Controller 'viralHepatitisPractitionerName' => 'required|string|max:70', 'viralHepatitisDate' => 'required|date', 'hasActiveTB' => 'required|string|max:1', - 'activeTBPractitionerCode' => 'required|string|max:70', + 'activeTBPractitionerName' => 'required|string|max:70', 'activeTBDate' => 'required|date', 'hasSkinDiseases' => 'required|string|max:1', 'skinDiseasesPractitionerName' => 'required|string|max:70', @@ -174,6 +175,14 @@ class HealthCertificateController extends Controller // 替换 photo 字段为路径 $data['photo'] = $photoPath; unset($data['key']); + + // 获取数据库字段白名单 + $schema = Schema::getColumnListing('health_certificate_push'); +// 过滤掉数据库中不存在的字段 + $data = array_filter($data, function ($key) use ($schema) { + return in_array($key, $schema); + }, ARRAY_FILTER_USE_KEY); + // 插入数据库 try { $id = DB::table('health_certificate_push')->insertGetId($data); @@ -278,16 +287,15 @@ class HealthCertificateController extends Controller $filename = uniqid() . '_' . mt_rand(0, 999999) . '.' . $file_extension; $path = $file->store($path, 'public'); - $url = '/storage/' . $path . '/' . $filename; - $record=DB::table('health_certificate_push')->where(['hospitalCode'=>$hospitalCode,'healthExaminationId'=>$healthExaminationId])->get(); - if(count($record)==0){ - - return response()->json([ - 'status' => 400, - 'msg' => '未找到对应体检记录,请先提交对应体检记录' - ], 400); - } - $record=DB::table('health_certificate_push')->where(['hospitalCode'=>$hospitalCode,'healthExaminationId'=>$healthExaminationId])->update(['pdf'=>$url]); + $url = '/storage/' . $path ; + $data=[ + 'hospitalCode' => $hospitalCode, + 'hospitalName' => $hospitalName, + 'healthExaminationId' => $healthExaminationId, + 'reportId' => $reportId, + 'pdf_url' => $url, + ]; + $record=DB::table('health_certificate_push_pdf')->insertGetId($data); if($record){ return response()->json([ 'status' => 0,