Save settings in a transaction

This commit is contained in:
slawkens 2025-02-02 22:28:27 +01:00
parent 28fef952f8
commit 4b6024dc45

View File

@ -72,6 +72,11 @@ class Settings implements \ArrayAccess
} }
} }
global $db;
try {
$db->beginTransaction();
$this->errors = []; $this->errors = [];
ModelsSettings::where('name', $pluginName)->delete(); ModelsSettings::where('name', $pluginName)->delete();
foreach ($values as $key => $value) { foreach ($values as $key => $value) {
@ -81,15 +86,18 @@ class Settings implements \ArrayAccess
continue; continue;
} }
try {
ModelsSettings::create([ ModelsSettings::create([
'name' => $pluginName, 'name' => $pluginName,
'key' => $key, 'key' => $key,
'value' => $value 'value' => $value
]); ]);
} catch (\PDOException $error) {
$this->errors[] = 'Error while saving setting (' . $pluginName . ' - ' . $key . '): ' . $error->getMessage();
} }
$db->commit();
} catch (\Exception $error) {
$db->rollBack();
$this->errors[] = 'Error while saving settings (' . $pluginName . ')<br/>' . $error->getMessage();
return false;
} }
$this->clearCache(); $this->clearCache();