You are here

public static function SynonymsEntitySelect::validateEntitySelect in Synonyms 2.0.x

Form element validation handler for synonyms_entity_select elements.

File

modules/synonyms_select/src/Element/SynonymsEntitySelect.php, line 123

Class

SynonymsEntitySelect
Form element for synonyms-friendly entity select.

Namespace

Drupal\synonyms_select\Element

Code

public static function validateEntitySelect(array &$element, FormStateInterface $form_state, array &$complete_form) {
  $value = $form_state
    ->getValue($element['#parents']);
  if (!isset($element['#multiple']) || !$element['#multiple']) {
    $value = [
      $value,
    ];
  }
  $unique = [];
  foreach ($value as $v) {
    if (!empty($v) || $v == 0) {
      if (!is_numeric($v)) {
        $v = explode(self::DELIMITER, $v, 2)[0];
      }
      $unique[$v] = $v;
    }
  }
  $items = [];
  foreach ($unique as $v) {
    $items[] = [
      $element['#key_column'] => $v,
    ];
  }
  if (!isset($element['#multiple']) || !$element['#multiple']) {
    $items = reset($items);
  }
  $form_state
    ->setValueForElement($element, $items);
}