/** * {@inheritdoc} */ public function defaultValuesFormSubmit(array $element, array &$form, array &$form_state) { $default_value = parent::defaultValuesFormSubmit($element, $form, $form_state); // Convert numeric IDs to UUIDs to ensure config deployability. $ids = array(); foreach ($default_value as $delta => $properties) { $ids[] = $properties['target_id']; } $entities = \Drupal::entityManager()->getStorage('taxonomy_term')->loadMultiple($ids); foreach ($default_value as $delta => $properties) { unset($default_value[$delta]['target_id']); $default_value[$delta]['target_uuid'] = $entities[$properties['target_id']]->uuid(); } return $default_value; }
/** * {@inheritdoc} */ public function defaultValuesFormSubmit(array $element, array &$form, array &$form_state) { $default_value = parent::defaultValuesFormSubmit($element, $form, $form_state); // Convert numeric IDs to UUIDs to ensure config deployability. $ids = array(); foreach ($default_value as $delta => $properties) { $ids[] = $properties['target_id']; } $entities = \Drupal::entityManager()->getStorage($this->getSetting('target_type'))->loadMultiple($ids); foreach ($default_value as $delta => $properties) { $uuid = $entities[$properties['target_id']]->uuid(); // @todo Some entities do not have uuid. IE: Anonymous and admin user. // Remove this special case once http://drupal.org/node/2050843 // has been fixed. if (!$uuid) { $uuid = $properties['target_id'] == '0' ? 'anonymous' : 'administrator'; } unset($default_value[$delta]['target_id']); $default_value[$delta]['target_uuid'] = $uuid; } return $default_value; }
/** * {@inheritdoc} */ public function defaultValuesFormSubmit(array $element, array &$form, FormStateInterface $form_state) { $default_value = parent::defaultValuesFormSubmit($element, $form, $form_state); // Convert numeric IDs to UUIDs to ensure config deployability. $ids = array(); foreach ($default_value as $delta => $properties) { $ids[] = $properties['target_revision_id']; } $entities = array(); foreach ($ids as $id) { $entities[$id] = \Drupal::entityManager()->getStorage($this->getSetting('target_type'))->loadRevision($id); } foreach ($default_value as $delta => $properties) { $default_value[$delta] = array('target_uuid' => $entities[$properties['target_revision_id']]->uuid(), 'target_revision_id' => $properties['target_revision_id']); } return $default_value; }