public static function validateAllowedValues(array $element, FormStateInterface $form_state) {
    $values = static::extractAllowedValues($element['#value'], $element['#field_has_data']);

    if (!is_array($values)) {
      $form_state->setError($element, t('Allowed values list: invalid input.'));
    }
    else {
      // Check that keys are valid for the field type.
      foreach ($values as $key => $value) {
        if ($error = static::validateAllowedValue($key)) {
          $form_state->setError($element, $error);
          break;
        }
      }

      // Prevent removing values currently in use.
      if ($element['#field_has_data']) {
        $lost_keys = array_keys(array_diff_key($element['#allowed_values'], $values));
        if (_options_values_in_use($element['#entity_type'], $element['#field_name'], $lost_keys)) {
          $form_state->setError($element, t('Allowed values list: some values are being removed while currently in use.'));
        }
      }

      $form_state->setValueForElement($element, $values);
    }
  }
public static function validateAllowedValues(array $element, FormStateInterface $form_state) {
    $values = static::extractAllowedValues($element['#value'], $element['#field_has_data']);

    if (!is_array($values)) {
      $form_state->setError($element, t('Allowed values list: invalid input.'));
    }
    else {
      // Check that keys are valid for the field type.
      foreach ($values as $key => $value) {
        if ($error = static::validateAllowedValue($key)) {
          $form_state->setError($element, $error);
          break;
        }
      }

      // Prevent removing values currently in use.
      if ($element['#field_has_data']) {
        $lost_keys = array_keys(array_diff_key($element['#allowed_values'], $values));
        if (_options_values_in_use($element['#entity_type'], $element['#field_name'], $lost_keys)) {
          $form_state->setError($element, t('Allowed values list: some values are being removed while currently in use.'));
        }
      }

      $form_state->setValueForElement($element, $values);
    }
  }
public static function validateAllowedValues ( array $ element , FormStateInterface $ form_state ) { $ values = static :: extractAllowedValues ( $ element [ '#value' ] , $ element [ '#field_has_data' ] ) ; if ( ! is_array ( $ values ) ) { $ form_state -> setError ( $ element , t ( 'Allowed values list: invalid input.' ) ) ; } else { // Check that keys are valid for the field type. foreach ( $ values as $ key => $ value ) { if ( $ error = static :: validateAllowedValue ( $ key ) ) { $ form_state -> setError ( $ element , $ error ) ; break ; } } // Prevent removing values currently in use. if ( $ element [ '#field_has_data' ] ) { $ lost_keys = array_keys ( array_diff_key ( $ element [ '#allowed_values' ] , $ values ) ) ; if ( _options_values_in_use ( $ element [ '#entity_type' ] , $ element [ '#field_name' ] , $ lost_keys ) ) { $ form_state -> setError ( $ element , t ( 'Allowed values list: some values are being removed while currently in use.' ) ) ; } } $ form_state -> setValueForElement ( $ element , $ values ) ; } }
Element_validate callback for options field allowed values.

@param array $element
An associative array containing the properties and children of the
generic form element.
@param \Drupal\Core\Form\FormStateInterface $form_state
The current state of the form for the form this element belongs to.

@see \Drupal\Core\Render\Element\FormElement::processPattern()
Element_validate callback for options field allowed values .