fix: 🐛 Settings update -> type check

This commit is contained in:
IceToast 2023-04-04 01:45:18 +02:00
parent 18d4962ef9
commit 5b8f12fa94
No known key found for this signature in database
GPG key ID: 1464353E063A5B97

View file

@ -109,26 +109,18 @@ class SettingsController extends Controller
$settingsClass = new $settings_class(); $settingsClass = new $settings_class();
foreach ($settingsClass->toArray() as $key => $value) { foreach ($settingsClass->toArray() as $key => $value) {
switch (gettype($request->input($key))) { // Get the type of the settingsclass property
case 'boolean': $rp = new \ReflectionProperty($settingsClass, $key);
$settingsClass->$key = $request->has($key); $rpType = $rp->getType();
break;
case 'string': if ($rpType == 'bool') {
$settingsClass->$key = $request->input($key) ?? ''; $settingsClass->$key = $request->has($key);
break; continue;
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;
case 'NULL':
$settingsClass->$key = null;
break;
} }
$nullable = $rpType->allowsNull();
if ($nullable) $settingsClass->$key = $request->input($key) ?? null;
else $settingsClass->$key = $request->input($key);
} }
$settingsClass->save(); $settingsClass->save();