diff --git a/core/modules/entity/lib/Drupal/entity/Plugin/Validation/Constraint/EntityChangedConstraintValidator.php b/core/modules/entity/lib/Drupal/entity/Plugin/Validation/Constraint/EntityChangedConstraintValidator.php index 6d3469a..d31ce0e 100644 --- a/core/modules/entity/lib/Drupal/entity/Plugin/Validation/Constraint/EntityChangedConstraintValidator.php +++ b/core/modules/entity/lib/Drupal/entity/Plugin/Validation/Constraint/EntityChangedConstraintValidator.php @@ -23,10 +23,14 @@ public function validate($value, Constraint $constraint) { // We are on the field item level, so we need to go two levels up for the // entity object. $entity = $this->context->getMetadata()->getTypedData()->getParent()->getParent(); - $saved_entity = entity_load_unchanged($entity->type, $entity->id()); - if (!empty($saved_entity) && ($saved_entity instanceof EntityChangedInterface) && ($saved_entity->getChangedTime() > $value)) { - $this->context->addViolation($constraint->message); + if (!$entity->isNew()) { + $saved_entity = \Drupal::entityManager()->getStorageController($entity->entityType())->loadUnchanged($entity->id()); + + if ($saved_entity && ($saved_entity instanceof EntityChangedInterface) && ($saved_entity->getChangedTime() > $value)) { + $this->context->addViolation($constraint->message); + } } } } + }