public function EntityAutocomplete::setDefaultValue in Webform 8.5
Same name and namespace in other branches
- 6.x src/Plugin/WebformElement/EntityAutocomplete.php \Drupal\webform\Plugin\WebformElement\EntityAutocomplete::setDefaultValue()
Set an element's default value using saved data.
The method allows the submission's 'saved' #default_value to be different from the element's #default_value.
Parameters
array $element: An element.
Overrides WebformElementBase::setDefaultValue
See also
\Drupal\webform\Plugin\WebformElement\DateBase::setDefaultValue
\Drupal\webform\Plugin\WebformElement\EntityAutocomplete::setDefaultValue
File
- src/
Plugin/ WebformElement/ EntityAutocomplete.php, line 44
Class
- EntityAutocomplete
- Provides a 'entity_autocomplete' element.
Namespace
Drupal\webform\Plugin\WebformElementCode
public function setDefaultValue(array &$element) {
// Make sure tags or multiple is used.
if (!empty($element['#tags']) && isset($element['#multiple'])) {
unset($element['#multiple']);
}
if (isset($element['#multiple'])) {
$element['#default_value'] = isset($element['#default_value']) ? (array) $element['#default_value'] : NULL;
return;
}
if (!empty($element['#default_value'])) {
$target_type = $this
->getTargetType($element);
$entity_storage = $this->entityTypeManager
->getStorage($target_type);
if ($entities = $entity_storage
->loadMultiple((array) $element['#default_value'])) {
$element['#default_value'] = empty($element['#tags']) ? reset($entities) : $entities;
}
else {
$element['#default_value'] = NULL;
}
}
else {
$element['#default_value'] = NULL;
}
}