Jelajahi Sumber

обработка null-полей + ошибка

ilg2005 4 bulan lalu
induk
melakukan
3d08ac3346
1 mengubah file dengan 20 tambahan dan 2 penghapusan
  1. 20 2
      app/Http/Controllers/CharController.php

+ 20 - 2
app/Http/Controllers/CharController.php

@@ -234,12 +234,30 @@ class CharController extends Controller
         $fillable      = $model->getFillable();
         $filteredData  = array_intersect_key($data, array_flip($fillable));
 
+        // Конвертируем null-поля в '', чтобы вместо NULL в БД сохранялась пустая строка
+        $filteredData  = array_map(static fn ($v) => $v === null ? '' : $v, $filteredData);
+
         if (empty($filteredData)) {
             return response()->json(['code' => -6, 'msg' => 'No valid fields to update.'], 400);
         }
 
-        // 5. Обновляем запись и возвращаем свежие данные
-        $model->update($filteredData);
+        // 5. Пытаемся обновить запись; если что-то пошло не так — отправляем ошибку
+        try {
+            $ok = $model->update($filteredData);
+        } catch (\Throwable $e) {
+            return response()->json([
+                'code'  => -7,
+                'msg'   => 'Database error while updating record.',
+                'error' => $e->getMessage(),
+            ], 500);
+        }
+
+        if (!$ok) {
+            return response()->json([
+                'code' => -8,
+                'msg'  => 'Update failed, record not modified.',
+            ], 500);
+        }
 
         return response()->json([
             'code' => 0,