public FormSubmitter::doSubmitForm(&$form, FormStateInterface &$form_state)
Handles the submitted form, executing callbacks and processing responses.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
null|\Symfony\Component\HttpFoundation\Response If a response was set by a submit handler, or if the form needs to redirect, a Response object will be returned.
Overrides FormSubmitterInterface::doSubmitForm
File
- core/lib/Drupal/Core/Form/FormSubmitter.php, line 45
Class
- FormSubmitter
- Provides submission processing for forms.
Namespace
Drupal\Core\Form
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | public function doSubmitForm(& $form , FormStateInterface & $form_state ) { if (! $form_state ->isSubmitted()) { return ; } // Execute form submit handlers. $this ->executeSubmitHandlers( $form , $form_state ); // If batches were set in the submit handlers, we process them now, // possibly ending execution. We make sure we do not react to the batch // that is already being processed (if a batch operation performs a // \Drupal\Core\Form\FormBuilderInterface::submitForm). if ( $batch = & $this ->batchGet() && !isset( $batch [ 'current_set' ])) { // Store $form_state information in the batch definition. $batch [ 'form_state' ] = $form_state ; $batch [ 'progressive' ] = ! $form_state ->isProgrammed(); $response = batch_process(); if ( $batch [ 'progressive' ]) { return $response ; } // Execution continues only for programmatic forms. // For 'regular' forms, we get redirected to the batch processing // page. Form redirection will be handled in _batch_finished(), // after the batch is processed. } // Set a flag to indicate the form has been processed and executed. $form_state ->setExecuted(); // If no response has been set, process the form redirect. if (! $form_state ->getResponse() && $redirect = $this ->redirectForm( $form_state )) { $form_state ->setResponse( $redirect ); } // If there is a response was set, return it instead of continuing. if (( $response = $form_state ->getResponse()) && $response instanceof Response) { return $response ; } } |
Please login to continue.