diff --git a/src/Forms/TreeMultiselectField.php b/src/Forms/TreeMultiselectField.php index 2857a5c30..de523dd39 100644 --- a/src/Forms/TreeMultiselectField.php +++ b/src/Forms/TreeMultiselectField.php @@ -149,12 +149,16 @@ class TreeMultiselectField extends TreeDropdownField // Parse ids from value string / array $ids = []; + if (is_string($value)) { $ids = preg_split("#\s*,\s*#", trim($value)); } elseif (is_array($value)) { $ids = array_values($value); } + // Filter out empty strings + $ids = array_filter($ids); + // No value if (empty($ids)) { return ArrayList::create(); diff --git a/tests/php/Forms/TreeMultiselectFieldTest.php b/tests/php/Forms/TreeMultiselectFieldTest.php index 78d8b0190..c0d7ea2e9 100644 --- a/tests/php/Forms/TreeMultiselectFieldTest.php +++ b/tests/php/Forms/TreeMultiselectFieldTest.php @@ -340,5 +340,12 @@ class TreeMultiselectFieldTest extends SapphireTest [], $field->getItems() ); + + // Andle empty string none value + $field->setValue(''); + $this->assertListEquals( + [], + $field->getItems() + ); } }