function FormTestFormStateValuesCleanForm::buildForm

Same name and namespace in other branches
  1. 9 core/modules/system/tests/modules/form_test/src/Form/FormTestFormStateValuesCleanForm.php \Drupal\form_test\Form\FormTestFormStateValuesCleanForm::buildForm()
  2. 10 core/modules/system/tests/modules/form_test/src/Form/FormTestFormStateValuesCleanForm.php \Drupal\form_test\Form\FormTestFormStateValuesCleanForm::buildForm()
  3. 11.x core/modules/system/tests/modules/form_test/src/Form/FormTestFormStateValuesCleanForm.php \Drupal\form_test\Form\FormTestFormStateValuesCleanForm::buildForm()

Overrides FormInterface::buildForm

File

core/modules/system/tests/modules/form_test/src/Form/FormTestFormStateValuesCleanForm.php, line 26

Class

FormTestFormStateValuesCleanForm
Form builder for <a href="/api/drupal/core%21lib%21Drupal%21Core%21Form%21FormState.php/function/FormState%3A%3AcleanValues/8.9.x" title="Removes internal Form API elements and buttons from submitted form values." class="local">\Drupal\Core\Form\FormState::cleanValues</a>() test.

Namespace

Drupal\form_test\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
    // Build an example form containing multiple submit and button elements; not
    // only on the top-level.
    $form = [
        '#tree' => TRUE,
    ];
    $form['foo'] = [
        '#type' => 'submit',
        '#value' => t('Submit'),
    ];
    $form['bar'] = [
        '#type' => 'submit',
        '#value' => t('Submit'),
    ];
    $form['beer'] = [
        '#type' => 'value',
        '#value' => 1000,
    ];
    $form['baz']['foo'] = [
        '#type' => 'button',
        '#value' => t('Submit'),
    ];
    $form['baz']['baz'] = [
        '#type' => 'submit',
        '#value' => t('Submit'),
    ];
    $form['baz']['beer'] = [
        '#type' => 'value',
        '#value' => 2000,
    ];
    // Add an arbitrary element and manually set it to be cleaned.
    // Using $form_state->addCleanValueKey('wine'); didn't work here.
    $class = get_class($this);
    $form['wine'] = [
        '#type' => 'value',
        '#value' => 3000,
        '#process' => [
            [
                $class,
                'cleanValue',
            ],
        ],
    ];
    return $form;
}

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