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().
1 2 3 4 5 6 7 8 9 | // register a new user $form_state = new FormState(); $values [ 'name' ] = 'robo-user' ; $values [ 'mail' ] = 'robouser@example.com' ; $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:
- The name of a class that implements \Drupal\Core\Form\FormInterface.
- An instance of a class that implements \Drupal\Core\Form\FormInterface.
$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:
1 2 | function mymodule_form( $form , FormStateInterface & $form_state , & $object ) { } |
would be called via self::submitForm() as follows:
1 2 3 | $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
1 | public function submitForm( $form_arg , FormStateInterface & $form_state ); |
Please login to continue.