diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php index 51a29d860b..5b6a22874e 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php @@ -120,4 +120,20 @@ public static function generateSampleValue(FieldDefinitionInterface $field_defin return $values; } + /** + * {@inheritdoc} + */ + public function setValue($values, $notify = TRUE) { + $keys = array_keys($this->definition->getPropertyDefinitions()); + // Treat the values as property value of the main property, if no array is + // given. + if (isset($values) && !is_array($values)) { + $values = [$keys[0] => $values]; + } + // Since Boolean values are stored as 0 or 1 cast to an integer so that the + // value matches the stored value. + $values[$keys[0]] = (int) $values[$keys[0]]; + parent::setValue($values, $notify); + } + }