From 5ef0c2f6c51bad4a4e30e512bd5d7f55b1808df5 Mon Sep 17 00:00:00 2001 From: Ivo Valchev Date: Wed, 10 Feb 2021 16:27:56 +0100 Subject: [PATCH] Selects with `multiple: true` always have an array value --- src/Entity/Field/SelectField.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Entity/Field/SelectField.php b/src/Entity/Field/SelectField.php index 037af9978..1e8dfc138 100644 --- a/src/Entity/Field/SelectField.php +++ b/src/Entity/Field/SelectField.php @@ -51,6 +51,18 @@ public function getValue(): ?array return array_filter((array) $value); } + public function getParsedValue() + { + $parsedValue = parent::getParsedValue(); + + if ($this->getDefinition()->get('multiple') && ! is_array($parsedValue)) { + // Make sure that multiselects always return an array, even if there's only one item. + $parsedValue = [$parsedValue]; + } + + return $parsedValue; + } + public function getOptions() { return $this->getDefinition()->get('values');