Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Render/Element/FormElement.php \Drupal\Core\Render\Element\FormElement::processAutocomplete()
  2. 9 core/lib/Drupal/Core/Render/Element/FormElement.php \Drupal\Core\Render\Element\FormElement::processAutocomplete()

Adds autocomplete functionality to elements.

This sets up autocomplete functionality for elements with an #autocomplete_route_name property, using the #autocomplete_route_parameters and #autocomplete_query_parameters properties if present.

For example, suppose your autocomplete route name is 'my_module.autocomplete' and its path is '/my_module/autocomplete/{a}/{b}'. In a form array, you would create a text field with properties:


'#autocomplete_route_name' => 'my_module.autocomplete',
'#autocomplete_route_parameters' => array('a' => $some_key, 'b' => $some_id),

If the user types "keywords" in that field, the full path called would be: 'my_module_autocomplete/$some_key/$some_id?q=keywords'

Parameters

array $element: The form element to process. Properties used:

  • #autocomplete_route_name: A route to be used as callback URL by the autocomplete JavaScript library.
  • #autocomplete_route_parameters: The parameters to be used in conjunction with the route name.
  • #autocomplete_query_parameters: The parameters to be used in query string

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

array $complete_form: The complete form structure.

Return value

array The form element.

Overrides FormElementBase::processAutocomplete

File

core/lib/Drupal/Core/Render/Element/FormElement.php, line 92

Class

FormElement
Provides a base class for form element plugins.

Namespace

Drupal\Core\Render\Element

Code

public static function processAutocomplete(&$element, FormStateInterface $form_state, &$complete_form) {
  @trigger_error('\\Drupal\\Core\\Render\\Element\\FormElement::processAutocomplete() is deprecated in drupal:10.3.0 and is removed from drupal:12.0.0. Use \\Drupal\\Core\\Render\\Element\\FormElementBase::processAutocomplete() instead. See https://www.drupal.org/node/3436275', E_USER_DEPRECATED);
  return parent::processAutocomplete($element, $form_state, $complete_form);
}