You are here

public function EntityAutocomplete::prepare in YAML Form 8

Prepare an element to be rendered within a form.

Parameters

array $element: An element.

\Drupal\yamlform\YamlFormSubmissionInterface $yamlform_submission: A form submission.

Overrides YamlFormElementBase::prepare

File

src/Plugin/YamlFormElement/EntityAutocomplete.php, line 65

Class

EntityAutocomplete
Provides a 'entity_autocomplete' element.

Namespace

Drupal\yamlform\Plugin\YamlFormElement

Code

public function prepare(array &$element, YamlFormSubmissionInterface $yamlform_submission) {
  parent::prepare($element, $yamlform_submission);

  // If #tags (aka multiple entities) use #after_builder to set #element_value
  // which must be executed after
  // \Drupal\Core\Entity\Element\EntityAutocomplete::validateEntityAutocomplete().
  if ($this
    ->hasMultipleValues($element)) {
    $element['#after_build'][] = [
      get_class($this),
      'afterBuildEntityAutocomplete',
    ];
  }

  // If selection handler include auto_create when need to also set it for
  // the $element.
  // @see \Drupal\Core\Entity\Element\EntityAutocomplete::validateEntityAutocomplete
  if (!empty($element['#selection_settings']['auto_create_bundle'])) {
    $element['#autocreate']['bundle'] = $element['#selection_settings']['auto_create_bundle'];
  }
}