function FormBuilder::submitForm

Same name in other branches
  1. 9 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. 11.x core/lib/Drupal/Core/Form/FormBuilder.php \Drupal\Core\Form\FormBuilder::submitForm()

Overrides FormBuilderInterface::submitForm

File

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

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.