diff --git a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php
index aef9fb0018..facf2a6c36 100644
--- a/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php
+++ b/core/lib/Drupal/Core/Entity/Plugin/Validation/Constraint/ValidReferenceConstraintValidator.php
@@ -125,7 +125,8 @@ public function validate($value, Constraint $constraint) {
       $previously_referenced_ids = [];
       if ($value->getParent() && ($entity = $value->getEntity()) && !$entity->isNew()) {
         $existing_entity = $this->entityTypeManager->getStorage($entity->getEntityTypeId())->loadUnchanged($entity->id());
-        foreach ($existing_entity->{$value->getFieldDefinition()->getName()}->getValue() as $item) {
+        $field_name = $value->getFieldDefinition()->getName();
+        foreach ($existing_entity->get($field_name)->getValue() as $item) {
           $previously_referenced_ids[$item['target_id']] = $item['target_id'];
         }
       }
