Callbacks.php

Same filename in this branch
  1. 11.x core/modules/system/tests/modules/ajax_forms_test/src/Callbacks.php
Same filename in other branches
  1. 9 core/modules/system/tests/modules/ajax_forms_test/src/Callbacks.php
  2. 9 core/modules/system/tests/modules/form_test/src/Callbacks.php
  3. 8.9.x core/modules/system/tests/modules/ajax_forms_test/src/Callbacks.php
  4. 8.9.x core/modules/system/tests/modules/form_test/src/Callbacks.php
  5. 10 core/modules/system/tests/modules/ajax_forms_test/src/Callbacks.php
  6. 10 core/modules/system/tests/modules/form_test/src/Callbacks.php

Namespace

Drupal\form_test

File

core/modules/system/tests/modules/form_test/src/Callbacks.php

View source
<?php

declare (strict_types=1);
namespace Drupal\form_test;

use Drupal\Core\Form\FormStateInterface;

/**
 * Simple class for testing methods as Form API callbacks.
 */
class Callbacks {
    
    /**
     * Form element validation handler for 'name' in form_test_validate_form().
     */
    public function validateName(&$element, FormStateInterface $form_state) {
        $triggered = FALSE;
        if ($form_state->getValue('name') == 'element_validate') {
            // Alter the form element.
            $element['#value'] = '#value changed by #element_validate';
            // Alter the submitted value in $form_state.
            $form_state->setValueForElement($element, 'value changed by setValueForElement() in #element_validate');
            $triggered = TRUE;
        }
        if ($form_state->getValue('name') == 'element_validate_access') {
            $form_state->set('form_test_name', $form_state->getValue('name'));
            // Alter the form element.
            $element['#access'] = FALSE;
            $triggered = TRUE;
        }
        elseif ($form_state->has('form_test_name')) {
            // To simplify this test, just take over the element's value into $form_state.
            $form_state->setValueForElement($element, $form_state->get('form_test_name'));
            $triggered = TRUE;
        }
        if ($triggered) {
            // Output the element's value from $form_state.
            \Drupal::messenger()->addStatus(t('@label value: @value', [
                '@label' => $element['#title'],
                '@value' => $form_state->getValue('name'),
            ]));
            // Trigger a form validation error to see our changes.
            $form_state->setErrorByName('');
        }
    }

}

Classes

Title Deprecated Summary
Callbacks Simple class for testing methods as Form API callbacks.

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