From 40c8afef9cd0c7d225437348e19a74e9b4572845 Mon Sep 17 00:00:00 2001 From: Luiz Petri <24775-luizsgpetri@users.noreply.drupalcode.org> Date: Sat, 13 May 2023 19:38:47 +0300 Subject: [PATCH] Issue #3097411 by tetranz, MorinLuc0, luizsgpetri: Entity form simple weight duplicates --- .../Field/FieldWidget/InlineEntityFormSimple.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Plugin/Field/FieldWidget/InlineEntityFormSimple.php b/src/Plugin/Field/FieldWidget/InlineEntityFormSimple.php index cd2ebd12..0a60007c 100644 --- a/src/Plugin/Field/FieldWidget/InlineEntityFormSimple.php +++ b/src/Plugin/Field/FieldWidget/InlineEntityFormSimple.php @@ -148,13 +148,18 @@ class InlineEntityFormSimple extends InlineEntityFormBase { /** @var \Drupal\Core\Entity\EntityInterface $entity */ $entity = $element['inline_entity_form']['#entity']; $weight = $submitted_values[$delta]['_weight'] ?? 0; - $values[$weight] = ['entity' => $entity]; + $values[] = ['entity' => $entity, 'weight' => $weight]; } } // Sort items base on weights. - ksort($values); - $values = array_values($values); + usort($values, function ($a, $b) { + return $a['weight'] <=> $b['weight']; + }); + + $values = array_map(function ($item) { + return $item['entity']; + }, $values); // Let the widget massage the submitted values. $values = $this->massageFormValues($values, $form, $form_state); -- GitLab