Skip to content
Snippets Groups Projects

Issue #3472326 Unable to remove item at non-existing index.

Merged Issue #3472326 Unable to remove item at non-existing index.
All threads resolved!
All threads resolved!
1 file
+ 10
2
Compare changes
  • Side-by-side
  • Inline
@@ -31,11 +31,19 @@ class EntityReferenceExportFormatter extends EntityReferenceEntityFormatter {
public function view(FieldItemListInterface $items, $langcode = NULL): array {
$elements = $this->viewElements($items, $langcode);
$deltasToRemove = [];
foreach ($items as $k => $item) {
if (empty($elements[$k]) && $item->entity) {
$items->removeItem($k);
if (!empty($elements) && !isset($elements[$k]) && $item->entity) {
$deltasToRemove[] = $k;
}
}
// Field item deltas are reset when an item is removed. This removes
// items in descending order so that the deltas yet to be removed will
// continue to exist and can be removed in a future loop.
rsort($deltasToRemove);
foreach ($deltasToRemove as $delta) {
$items->removeItem($delta);
}
$elements = array_values($elements);
$output = ['#items' => $items];
Loading