diff --git a/core/modules/hal/src/Normalizer/FieldItemNormalizer.php b/core/modules/hal/src/Normalizer/FieldItemNormalizer.php index f9b952ba16..6fd8afd594 100644 --- a/core/modules/hal/src/Normalizer/FieldItemNormalizer.php +++ b/core/modules/hal/src/Normalizer/FieldItemNormalizer.php @@ -4,6 +4,7 @@ use Drupal\Core\Entity\FieldableEntityInterface; use Drupal\Core\Field\FieldItemInterface; +use Drupal\Core\Field\FieldStorageDefinitionInterface; use Symfony\Component\Serializer\Exception\InvalidArgumentException; /** @@ -134,7 +135,8 @@ protected function createTranslatedInstance(FieldItemInterface $item, $langcode) $field = $entity_translation->get($field_name); // Append an item only if the item list is empty or allows multiple values. - if (!count($field) || $item->getFieldDefinition()->getFieldStorageDefinition()->isMultiple()) { + $cardinality = $item->getFieldDefinition()->getFieldStorageDefinition()->getCardinality(); + if ($cardinality === FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED || count($field) < $cardinality) { return $field->appendItem(); } return $field->first();