W3cubDocs

/Drupal 8

public function FormBuilderInterface::submitForm

public FormBuilderInterface::submitForm($form_arg, FormStateInterface &$form_state)

Retrieves, populates, and processes a form.

This function allows you to supply values for form elements and submit a form for processing. Compare to self::getForm(), which also builds and processes a form, but does not allow you to supply values.

There is no return value, but you can check to see if there are errors by calling $form_state->getErrors().

// register a new user
$form_state = new FormState();
$values['name'] = 'robo-user';
$values['mail'] = '[email protected]';
$values['pass']['pass1'] = 'password';
$values['pass']['pass2'] = 'password';
$values['op'] = t('Create new account');
$form_state->setValues($values);
\Drupal::formBuilder()->submitForm('user_register_form', $form_state);

Parameters

\Drupal\Core\Form\FormInterface|string $form_arg: The value must be one of the following:

$form_state: The current state of the form. Most important is the $form_state->getValues() collection, a tree of data used to simulate the incoming \Drupal::request()->request information from a user's form submission. If a key is not filled in $form_state->getValues(), then the default value of the respective element is used. To submit an unchecked checkbox or other control that browsers submit by not having a \Drupal::request()->request entry, include the key, but set the value to NULL.

...: Any additional arguments are passed on to the functions called by self::submitForm(), including the unique form constructor function. For example, the node_edit form requires that a node object be passed in here when it is called. Arguments that need to be passed by reference should not be included here, but rather placed directly in the $form_state build info array so that the reference can be preserved. For example, a form builder function with the following signature:

  function mymodule_form($form, FormStateInterface &$form_state, &$object) {
  }
  

would be called via self::submitForm() as follows:

  $form_state->setValues($my_form_values);
  $form_state->addBuildInfo('args', [&$object]);
  \Drupal::formBuilder()->submitForm('mymodule_form', $form_state);
  

For example:

File

core/lib/Drupal/Core/Form/FormBuilderInterface.php, line 183

Class

FormBuilderInterface
Provides an interface for form building and processing.

Namespace

Drupal\Core\Form

Code

public function submitForm($form_arg, FormStateInterface &$form_state);

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Form!FormBuilderInterface.php/function/FormBuilderInterface::submitForm/8.1.x