You are here

public static function FapiValidationService::process in Form API Validation 8.2

Process element validators and filters.

Allows both #validators and #filters values. Run on form rendering. Only adds filters and validators on form submission if the values have been provided. Saves us from appending a check to every single item on submission.

File

src/FapiValidationService.php, line 22

Class

FapiValidationService
FapiValidationService.

Namespace

Drupal\fapi_validation

Code

public static function process(array &$element, FormStateInterface &$form_state) {
  if ((isset($element['#filters']) || isset($element['#validators'])) && (!isset($element['#element_validate']) || !is_array($element['#element_validate']))) {
    $element['#element_validate'] = [];
  }
  if (isset($element['#filters']) && is_array($element['#filters'])) {

    // Check if element validate is already empty, and if so make variable for
    // merging in values an empty array and put at first place.
    array_unshift($element['#element_validate'], '\\Drupal\\fapi_validation\\FapiValidationService::filter');
  }
  if (isset($element['#validators']) && is_array($element['#validators'])) {
    $element['#element_validate'][] = '\\Drupal\\fapi_validation\\FapiValidationService::validate';
  }
  return $element;
}