mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-26 09:19:22 +02:00
Save settings in a transaction
This commit is contained in:
parent
28fef952f8
commit
4b6024dc45
@ -72,24 +72,32 @@ class Settings implements \ArrayAccess
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->errors = [];
|
global $db;
|
||||||
ModelsSettings::where('name', $pluginName)->delete();
|
|
||||||
foreach ($values as $key => $value) {
|
try {
|
||||||
$errorMessage = '';
|
$db->beginTransaction();
|
||||||
if (isset($settings['settings'][$key]['callbacks']['beforeSave']) && !$settings['settings'][$key]['callbacks']['beforeSave']($key, $value, $errorMessage)) {
|
|
||||||
$this->errors[] = $errorMessage;
|
$this->errors = [];
|
||||||
continue;
|
ModelsSettings::where('name', $pluginName)->delete();
|
||||||
}
|
foreach ($values as $key => $value) {
|
||||||
|
$errorMessage = '';
|
||||||
|
if (isset($settings['settings'][$key]['callbacks']['beforeSave']) && !$settings['settings'][$key]['callbacks']['beforeSave']($key, $value, $errorMessage)) {
|
||||||
|
$this->errors[] = $errorMessage;
|
||||||
|
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();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user