fix: 🐛 Settings update -> type check
This commit is contained in:
parent
18d4962ef9
commit
5b8f12fa94
|
@ -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();
|
||||||
|
|
Loading…
Reference in a new issue