fix:입출금내역 저장 시 decimal:2 cast dirty 감지로 인한 unique 제약조건 위반 수정
Eloquent 모델의 decimal:2 cast가 balance를 dirty로 잘못 감지하여 UPDATE 시 balance가 포함되면서 unique 제약조건 위반 발생. Query Builder(DB::table)로 변경하여 지정 필드만 업데이트. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -949,14 +949,18 @@ public function save(Request $request): JsonResponse
|
||||
->first();
|
||||
|
||||
if ($existing) {
|
||||
// 계정과목 + 적요/예금주명 업데이트 (balance는 키값이므로 제외)
|
||||
$existing->update([
|
||||
'summary' => $data['summary'],
|
||||
'cast' => $data['cast'],
|
||||
'trans_office' => $data['trans_office'],
|
||||
'account_code' => $data['account_code'],
|
||||
'account_name' => $data['account_name'],
|
||||
]);
|
||||
// Query Builder 사용: Eloquent의 decimal:2 cast가 balance를
|
||||
// dirty로 잘못 감지하여 unique 제약조건 위반을 일으키는 문제 방지
|
||||
DB::table('barobill_bank_transactions')
|
||||
->where('id', $existing->id)
|
||||
->update([
|
||||
'summary' => $data['summary'],
|
||||
'cast' => $data['cast'],
|
||||
'trans_office' => $data['trans_office'],
|
||||
'account_code' => $data['account_code'],
|
||||
'account_name' => $data['account_name'],
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
$updated++;
|
||||
} else {
|
||||
BankTransaction::create($data);
|
||||
|
||||
Reference in New Issue
Block a user