From 207c2a7e6b11e558205779985c21d51baca07c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Fri, 27 Feb 2026 11:25:11 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[employee]=20=EB=B6=80=EC=96=91=EA=B0=80?= =?UTF-8?q?=EC=A1=B1=20=EC=B2=B4=ED=81=AC=EB=B0=95=EC=8A=A4(=EC=9E=A5?= =?UTF-8?q?=EC=95=A0=EC=9D=B8/=ED=94=BC=EB=B6=80=EC=96=91=EC=9E=90)=20?= =?UTF-8?q?=EA=B0=92=20=EC=A0=80=EC=9E=A5=C2=B7=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Alpine x-model + hidden input 패턴 개선 (동적 :value 바인딩) - JSON 로드 시 boolean 정규화로 체크 상태 정확히 복원 - 서비스 레이어에서 filter_var BOOLEAN 캐스팅 추가 - show 페이지 표시 로직 filter_var로 강화 --- app/Services/HR/EmployeeService.php | 12 ++++++++++++ resources/views/hr/employees/edit.blade.php | 14 +++++++++----- resources/views/hr/employees/show.blade.php | 4 ++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/Services/HR/EmployeeService.php b/app/Services/HR/EmployeeService.php index e33bee4b..cb2602e6 100644 --- a/app/Services/HR/EmployeeService.php +++ b/app/Services/HR/EmployeeService.php @@ -226,6 +226,12 @@ public function createEmployee(array $data): Employee $dependents = array_values(array_filter($data['dependents'], function ($dep) { return ! empty($dep['name']); })); + $dependents = array_map(function ($dep) { + $dep['is_disabled'] = filter_var($dep['is_disabled'] ?? false, FILTER_VALIDATE_BOOLEAN); + $dep['is_dependent'] = filter_var($dep['is_dependent'] ?? false, FILTER_VALIDATE_BOOLEAN); + + return $dep; + }, $dependents); if (! empty($dependents)) { $jsonExtra['dependents'] = $dependents; } @@ -305,6 +311,12 @@ public function updateEmployee(int $id, array $data): ?Employee $dependents = array_values(array_filter($data['dependents'], function ($dep) { return ! empty($dep['name']); })); + $dependents = array_map(function ($dep) { + $dep['is_disabled'] = filter_var($dep['is_disabled'] ?? false, FILTER_VALIDATE_BOOLEAN); + $dep['is_dependent'] = filter_var($dep['is_dependent'] ?? false, FILTER_VALIDATE_BOOLEAN); + + return $dep; + }, $dependents); if (! empty($dependents)) { $extra['dependents'] = $dependents; } else { diff --git a/resources/views/hr/employees/edit.blade.php b/resources/views/hr/employees/edit.blade.php index 649a64e5..cb0387d8 100644 --- a/resources/views/hr/employees/edit.blade.php +++ b/resources/views/hr/employees/edit.blade.php @@ -265,14 +265,14 @@ class="w-full px-2 py-1.5 border border-gray-300 rounded text-sm focus:ring-1 fo @@ -360,7 +360,11 @@ class="text-red-400 hover:text-red-600 shrink-0 ml-2" title="삭제">