diff --git a/core/modules/hal/src/Normalizer/FieldItemNormalizer.php b/core/modules/hal/src/Normalizer/FieldItemNormalizer.php index dc5aec9899..6ceb7d9805 100644 --- a/core/modules/hal/src/Normalizer/FieldItemNormalizer.php +++ b/core/modules/hal/src/Normalizer/FieldItemNormalizer.php @@ -37,9 +37,8 @@ public function normalize($field_item, $format = NULL, array $context = []) { // keyed by field name so that field items can be merged by the // FieldNormalizer. This is necessary for the EntityReferenceItemNormalizer // to be able to place values in the '_links' array. - $field = $field_item->getParent(); return [ - $field->getName() => [$values], + $field_item->getFieldDefinition()->getFieldName() => [$values], ]; } diff --git a/core/modules/hal/src/Normalizer/FieldNormalizer.php b/core/modules/hal/src/Normalizer/FieldNormalizer.php index 167499a26f..aaec2f55ab 100644 --- a/core/modules/hal/src/Normalizer/FieldNormalizer.php +++ b/core/modules/hal/src/Normalizer/FieldNormalizer.php @@ -18,18 +18,18 @@ class FieldNormalizer extends SerializationFieldNormalizer { /** * {@inheritdoc} */ - public function normalize($field, $format = NULL, array $context = []) { + public function normalize($field_items, $format = NULL, array $context = []) { $normalized_field_items = []; // Get the field definition. - $entity = $field->getEntity(); - $field_name = $field->getName(); - $field_definition = $field->getFieldDefinition(); + $entity = $field_items->getEntity(); + $field_name = $field_items->getName(); + $field_definition = $field_items->getFieldDefinition(); // If this field is not translatable, it can simply be normalized without // separating it into different translations. if (!$field_definition->isTranslatable()) { - $normalized_field_items = $this->normalizeFieldItems($field, $format, $context); + $normalized_field_items = $this->normalizeFieldItems($field_items, $format, $context); } // Otherwise, the languages have to be extracted from the entity and passed // in to the field item normalizer in the context. The langcode is appended @@ -38,15 +38,14 @@ public function normalize($field, $format = NULL, array $context = []) { foreach ($entity->getTranslationLanguages() as $language) { $context['langcode'] = $language->getId(); $translation = $entity->getTranslation($language->getId()); - $translated_field = $translation->get($field_name); - $normalized_field_items = array_merge($normalized_field_items, $this->normalizeFieldItems($translated_field, $format, $context)); + $translated_field_items = $translation->get($field_name); + $normalized_field_items = array_merge($normalized_field_items, $this->normalizeFieldItems($translated_field_items, $format, $context)); } } // Merge deep so that links set in entity reference normalizers are merged // into the links property. - $normalized = NestedArray::mergeDeepArray($normalized_field_items); - return $normalized; + return NestedArray::mergeDeepArray($normalized_field_items); } /** @@ -62,14 +61,14 @@ public function normalize($field, $format = NULL, array $context = []) { * @return array * The array of normalized field items. */ - protected function normalizeFieldItems($field, $format, $context) { - $normalized_field_items = []; - if (!$field->isEmpty()) { - foreach ($field as $field_item) { - $normalized_field_items[] = $this->serializer->normalize($field_item, $format, $context); + protected function normalizeFieldItems($field_items, $format, $context) { + $normalized_items = []; + if (!$field_items->isEmpty()) { + foreach ($field_items as $field_item) { + $normalized_items[] = $this->serializer->normalize($field_item, $format, $context); } } - return $normalized_field_items; + return $normalized_items; } }