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