From 9ed56858499172aec5be2c4da7e69a5073f66caf Mon Sep 17 00:00:00 2001 From: Eric Lippmann Date: Thu, 9 Nov 2017 09:07:15 +0100 Subject: [PATCH] ConfigForm: Use transformEmptyValuesToNull() also in onSuccess() refs #2751 --- application/forms/ConfigForm.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/application/forms/ConfigForm.php b/application/forms/ConfigForm.php index 63492525f..f3a61ee79 100644 --- a/application/forms/ConfigForm.php +++ b/application/forms/ConfigForm.php @@ -57,11 +57,7 @@ class ConfigForm extends Form public function onSuccess() { $sections = array(); - foreach ($this->getValues() as $sectionAndPropertyName => $value) { - if ($value === '' || $value === false || $value === []) { - $value = null; // Causes the config writer to unset it - } - + foreach (static::transformEmptyValuesToNull($this->getValues()) as $sectionAndPropertyName => $value) { list($section, $property) = explode('_', $sectionAndPropertyName, 2); $sections[$section][$property] = $value; } @@ -137,8 +133,12 @@ class ConfigForm extends Form */ public static function transformEmptyValuesToNull(array $values) { - return array_map(function ($v) { - return ($v === '' || $v === false || $v === []) ? null : $v; - }, $values); + array_walk($values, function (&$v) { + if ($v === '' || $v === false || $v === array()) { + $v = null; + } + }); + + return $values; } }