function FormBuilder::submitForm

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Form/FormBuilder.php \Drupal\Core\Form\FormBuilder::submitForm()
  2. 10 core/lib/Drupal/Core/Form/FormBuilder.php \Drupal\Core\Form\FormBuilder::submitForm()
  3. 8.9.x core/lib/Drupal/Core/Form/FormBuilder.php \Drupal\Core\Form\FormBuilder::submitForm()

File

core/lib/Drupal/Core/Form/FormBuilder.php, line 476

Class

FormBuilder
Provides form building and processing.

Namespace

Drupal\Core\Form

Code

public function submitForm($form_arg, FormStateInterface &$form_state) {
  $build_info = $form_state->getBuildInfo();
  if (empty($build_info['args'])) {
    $args = func_get_args();
    // Remove $form and $form_state from the arguments.
    unset($args[0], $args[1]);
    $form_state->addBuildInfo('args', array_values($args));
  }
  // Populate FormState::$input with the submitted values before retrieving
  // the form, to be consistent with what self::buildForm() does for
  // non-programmatic submissions (form builder functions may expect it to be
  // there).
  $form_state->setUserInput($form_state->getValues());
  $form_state->setProgrammed();
  $form_id = $this->getFormId($form_arg, $form_state);
  $form = $this->retrieveForm($form_id, $form_state);
  // Programmed forms are always submitted.
  $form_state->setSubmitted();
  // Reset form validation.
  $form_state->setValidationEnforced();
  $form_state->clearErrors();
  $this->prepareForm($form_id, $form, $form_state);
  $this->processForm($form_id, $form, $form_state);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.