|
|
@@ -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,
|