Browse Source

feat: ✨ Set Values with correct type

IceToast 2 years ago
parent
commit
201aff6c0a
1 changed files with 18 additions and 3 deletions
  1. 18 3
      app/Http/Controllers/Admin/SettingsController.php

+ 18 - 3
app/Http/Controllers/Admin/SettingsController.php

@@ -88,9 +88,24 @@ class SettingsController extends Controller
 
         $settingsClass = new $className();
 
-        foreach ($request->all() as $key => $value) {
-            if ($key === '_token' || $key === 'category') continue;
-            $settingsClass->$key = $value;
+        foreach ($settingsClass->toArray() as $key => $value) {
+            switch (gettype($value)) {
+                case 'boolean':
+                    $settingsClass->$key = $request->has($key);
+                    break;
+                case 'string':
+                    $settingsClass->$key = $request->input($key) ?? '';
+                    break;
+                case 'integer':
+                    $settingsClass->$key = $request->input($key) ?? 0;
+                    break;
+                case 'array':
+                    $settingsClass->$key = $request->input($key) ?? [];
+                    break;
+                case 'double':
+                    $settingsClass->$key = $request->input($key) ?? 0.0;
+                    break;
+            }
         }
 
         $settingsClass->save();