- $fields = $this->entityManager()->getFieldStorageDefinitions($this->entity_type);
- if (!isset($fields[$this->field_name])) {
+ $field_storage_definition = NULL;
+
+ $field_storage_definitions = $this->entityManager()->getFieldStorageDefinitions($this->entity_type);
+ if (isset($field_storage_definitions[$this->field_name])) {
+ $field_storage_definition = $field_storage_definitions[$this->field_name];
+ }
+ // If this field has been deleted, try to find its field storage
+ // definition in the deleted fields repository.
+ elseif ($this->deleted) {
+ $deleted_storage_definitions = \Drupal::service('entity_field.deleted_fields_repository')->getFieldStorageDefinitions();
+ foreach ($deleted_storage_definitions as $deleted_storage_definition) {
+ if ($deleted_storage_definition->getName() === $this->field_name) {
+ $field_storage_definition = $deleted_storage_definition;
+ }
+ }
+ }
+
+ if (!$field_storage_definition) {