diff --git a/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php b/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php index 33cef2df6dfc7a3442ec7e36a4a930f31a179dd0..ca9e6943866b1c51acad81625a739ab18f97aa56 100644 --- a/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php +++ b/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php @@ -687,11 +687,9 @@ protected function mapToStorageRecord(EntityInterface $entity, $table_key = 'bas foreach (array_keys($multi_column_fields) as $field_name) { $field_items = $entity->get($field_name); $field_value = $field_items->getValue(); - // @todo Reconsider the usage of getPropertyDefinitions() after - // https://drupal.org/node/2144327. - foreach (array_keys($field_items[0]->getPropertyDefinitions()) as $property_name) { - if (isset($schema['fields'][$field_name . '__' . $property_name])) { - $values[$field_name . '__' . $property_name] = isset($field_value[0][$property_name]) ? $field_value[0][$property_name] : NULL; + foreach (array_keys($field_items->getFieldDefinition()->getColumns()) as $field_schema_column) { + if (isset($schema['fields'][$field_name . '__' . $field_schema_column])) { + $values[$field_name . '__' . $field_schema_column] = isset($field_value[0][$field_schema_column]) ? $field_value[0][$field_schema_column] : NULL; } } }