From 9b5bd83f10a73e92e5b88a9b9f23230d8bf374eb Mon Sep 17 00:00:00 2001 From: Ben Thomson Date: Tue, 9 Apr 2019 15:35:07 +0800 Subject: [PATCH] Reset indexes when processing POST data --- modules/backend/formwidgets/Repeater.php | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/modules/backend/formwidgets/Repeater.php b/modules/backend/formwidgets/Repeater.php index ffa9a3bed..af16b9f90 100644 --- a/modules/backend/formwidgets/Repeater.php +++ b/modules/backend/formwidgets/Repeater.php @@ -197,7 +197,7 @@ class Repeater extends FormWidgetBase */ protected function processItems() { - $indexes = $groups = []; + $groups = []; $currentValue = post($this->formField->getName(), $this->getLoadValue()); // Ensure that the minimum number of items are preinitialized @@ -216,25 +216,19 @@ class Repeater extends FormWidgetBase } if (is_array($currentValue)) { - foreach ($currentValue as $index => $value) { - $indexes[] = $index; + foreach ($currentValue as $value) { $groups[] = array_get($value, '_group'); } } - if (!count($indexes)) { + if (!count($groups)) { return; } - $items = array_combine( - (array) $indexes, - (array) ($this->useGroups ? $groups : $indexes) - ); - - foreach ($items as $index => $groupCode) { + foreach ($groups as $index => $groupCode) { $this->makeItemFormWidget($index, $groupCode); } - $this->indexCount = max(count($items), $this->indexCount); + $this->indexCount = max(count($groups), $this->indexCount); } /**