diff --git a/core/lib/Drupal/Core/Field/EntityReferenceFieldItemList.php b/core/lib/Drupal/Core/Field/EntityReferenceFieldItemList.php index 9d85e477b6..ce35238fad 100644 --- a/core/lib/Drupal/Core/Field/EntityReferenceFieldItemList.php +++ b/core/lib/Drupal/Core/Field/EntityReferenceFieldItemList.php @@ -145,15 +145,14 @@ public function removeItemsByTargetId($target_id) { // one item at a time with removeItem() as that re-keys the list array // when it is called. This means the wrong items can be removed on // subsequent iterations. - $items = $this->list; - - foreach ($items as $delta => $item) { + foreach ($this->list as $delta => $item) { if ($item->target_id == $target_id) { - unset($items[$delta]); + unset($this->list[$delta]); } } - $this->setValue($items); + // Re-key the items. + $this->rekey(); } return $this;