diff --git a/src/Plugin/Field/FieldWidget/EntityReferenceBrowserWidget.php b/src/Plugin/Field/FieldWidget/EntityReferenceBrowserWidget.php index 7294a54..99a8eca 100644 --- a/src/Plugin/Field/FieldWidget/EntityReferenceBrowserWidget.php +++ b/src/Plugin/Field/FieldWidget/EntityReferenceBrowserWidget.php @@ -602,6 +602,7 @@ class EntityReferenceBrowserWidget extends WidgetBase implements ContainerFactor $entity_storage = $this->entityTypeManager->getStorage($entity_type); // Find IDs from target_id element (it stores selected entities in form). + // This was added to help solve a really edge casey bug in IEF. if (($target_id_entities = $this->getEntitiesByTargetId($element, $form_state)) !== FALSE) { return $target_id_entities; } @@ -707,24 +708,17 @@ class EntityReferenceBrowserWidget extends WidgetBase implements ContainerFactor protected function getEntitiesByTargetId(array $element, FormStateInterface $form_state) { $target_id_element_path = array_merge( $element['#field_parents'], - [ - $this->fieldDefinition->getName(), - 'target_id', - ] + [$this->fieldDefinition->getName(), 'target_id'] ); - $current_user_input = $form_state->getUserInput(); - foreach ($target_id_element_path as $element_identifier) { - if (!isset($current_user_input[$element_identifier])) { - return FALSE; - } - - $current_user_input = $current_user_input[$element_identifier]; + if (!NestedArray::keyExists($form_state->getUserInput(), $target_id_element_path)) { + return FALSE; } + // TODO Figure out how to avoid using raw user input. + $current_user_input = NestedArray::getValue($form_state->getUserInput(), $target_id_element_path); if (!is_array($current_user_input)) { $entities = EntityBrowserElement::processEntityIds($current_user_input); - return $entities; } diff --git a/tests/modules/entity_browser_ief_test/entity_browser_ief_test.info.yml b/tests/modules/entity_browser_ief_test/entity_browser_ief_test.info.yml index be3a3f3..de7d5e9 100644 --- a/tests/modules/entity_browser_ief_test/entity_browser_ief_test.info.yml +++ b/tests/modules/entity_browser_ief_test/entity_browser_ief_test.info.yml @@ -7,6 +7,6 @@ version: VERSION dependencies: - file - entity_browser - - entity_browser_entity_form + - entity_browser_entity_form - media_entity - inline_entity_form