EntityAutocomplete
class EntityAutocomplete extends Textfield (View source)
Provides an entity autocomplete form element.
The autocomplete form element allows users to select one or multiple entities, which can come from all or specific bundles of an entity type.
Properties:
-
target_type: (required) The ID of the target entity type.
-
tags: (optional) TRUE if the element allows multiple selection. Defaults
to FALSE.
-
default_value: (optional) The default entity or an array of default
entities, depending on the value of #tags.
-
selection_handler: (optional) The plugin ID of the entity reference
selection handler (a plugin of type EntityReferenceSelection). The default value is the lowest-weighted plugin that is compatible with #target_type.
-
selection_settings: (optional) An array of settings for the selection
handler. Settings for the default selection handler \Drupal\Core\Entity\Plugin\EntityReferenceSelection\DefaultSelection are:
- target_bundles: Array of bundles to allow (omit to allow all bundles).
- sort: Array with 'field' and 'direction' keys, determining how results will be sorted. Defaults to unsorted.
-
autocreate: (optional) Array of settings used to auto-create entities
that do not exist (omit to not auto-create entities). Elements:
- bundle: (required) Bundle to use for auto-created entities.
- uid: User ID to use as the author of auto-created entities. Defaults to the current user.
-
process_default_value: (optional) Set to FALSE if the #default_value
property is processed and access checked elsewhere (such as by a Field API widget). Defaults to TRUE.
-
validate_reference: (optional) Set to FALSE if validation of the selected
entities is performed elsewhere. Defaults to TRUE.
Usage example:
Traits
Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.
Provides dependency injection friendly methods for serialization.
Provides a trait for the messenger service.
Constants
| DERIVATIVE_SEPARATOR |
A string which is used to separate base plugin IDs from the derivative ID. |
Properties
| protected string | $pluginId | The plugin_id. |
from PluginBase |
| protected array | $pluginDefinition | The plugin implementation definition. |
from PluginBase |
| protected array | $configuration | Configuration information passed into the plugin. |
from PluginBase |
| protected TranslationInterface | $stringTranslation | The string translation service. |
from StringTranslationTrait |
| protected array | $_serviceIds | An array of service IDs keyed by property name used for serialization. |
from DependencySerializationTrait |
| protected array | $_entityStorages | An array of entity type IDs keyed by the property name of their storages. |
from DependencySerializationTrait |
| protected MessengerInterface | $messenger | The messenger. |
from MessengerTrait |
Methods
Constructs a \Drupal\Component\Plugin\PluginBase object.
Translates a string to the current language or to a given language.
Formats a string containing a count of items.
Returns the number of plurals supported by a given language.
Gets the string translation service.
Sets a form element's class attribute.
Adds members of this group as actual elements for rendering.
Form element processing handler for the #ajax form property.
Adds Ajax information about an element to communicate with JavaScript.
Arranges elements into groups.
Determines how user input is mapped to an element's #value property.
process callback for #pattern form element property.
element_validate callback for #pattern form element property.
Adds autocomplete functionality to elements.
Returns the element properties for this element.
Prepares a #type 'textfield' render element for input.html.twig.
Adds entity autocomplete functionality to a form element.
Form element validation handler for entity_autocomplete elements.
Finds an entity from an autocomplete input without an explicit ID.
Converts an array of entity objects into a string of entity labels.
Extracts the entity ID from the autocompletion result.
Details
__construct(array $configuration, string $plugin_id, mixed $plugin_definition)
Constructs a \Drupal\Component\Plugin\PluginBase object.
string
getPluginId()
Gets the plugin_id of the plugin instance.
string
getBaseId()
Gets the base_plugin_id of the plugin instance.
string|null
getDerivativeId()
Gets the derivative_id of the plugin instance.
array
getPluginDefinition()
Gets the definition of the plugin implementation.
bool
isConfigurable()
Determines if the plugin is configurable.
protected TranslatableMarkup
t(string $string, array $args = [], array $options = [])
Translates a string to the current language or to a given language.
See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.
In order for strings to be localized, make them available in one of the ways supported by the
protected
formatPlural($count, $singular, $plural, array $args = [], array $options = [])
Formats a string containing a count of items.
protected
getNumberOfPlurals($langcode = NULL)
Returns the number of plurals supported by a given language.
protected TranslationInterface
getStringTranslation()
Gets the string translation service.
$this
setStringTranslation(TranslationInterface $translation)
Sets the string translation service to use.
__sleep()
{@inheritdoc}
__wakeup()
{@inheritdoc}
setMessenger(MessengerInterface $messenger)
Sets the messenger.
MessengerInterface
messenger()
Gets the messenger.
static
setAttributes(array $element, array $class = [])
Sets a form element's class attribute.
Adds 'required' and 'error' classes as needed.
static array
preRenderGroup(array $element)
Adds members of this group as actual elements for rendering.
static array
processAjaxForm(array $element, FormStateInterface $form_state, array $complete_form)
Form element processing handler for the #ajax form property.
This method is useful for non-input elements that can be used in and outside the context of a form.
static array
preRenderAjaxForm(array $element)
Adds Ajax information about an element to communicate with JavaScript.
If #ajax is set on an element, this additional JavaScript is added to the page header to attach the Ajax behaviors. See ajax.js for more information.
static array
processGroup(array $element, FormStateInterface $form_state, array $complete_form)
Arranges elements into groups.
This method is useful for non-input elements that can be used in and outside the context of a form.
static mixed
valueCallback(array $element, mixed $input, FormStateInterface $form_state)
Determines how user input is mapped to an element's #value property.
static array
processPattern(array $element, FormStateInterface $form_state, array $complete_form)
process callback for #pattern form element property.
static
validatePattern($element, FormStateInterface $form_state, array $complete_form)
element_validate callback for #pattern form element property.
static array
processAutocomplete(array $element, FormStateInterface $form_state, array $complete_form)
Adds autocomplete functionality to elements.
This sets up autocomplete functionality for elements with an
autocomplete_route_name property, using the #autocomplete_route_parameters
property if present.
For example, suppose your autocomplete route name is 'mymodule.autocomplete' and its path is '/mymodule/autocomplete/{a}/{b}'. In a form array, you would create a text field with properties:
array
getInfo()
Returns the element properties for this element.
static array
preRenderTextfield(array $element)
Prepares a #type 'textfield' render element for input.html.twig.
static array
processEntityAutocomplete(array $element, FormStateInterface $form_state, array $complete_form)
Adds entity autocomplete functionality to a form element.
static
validateEntityAutocomplete(array $element, FormStateInterface $form_state, array $complete_form)
Form element validation handler for entity_autocomplete elements.
static protected int|null
matchEntityByTitle(SelectionInterface $handler, string $input, array $element, FormStateInterface $form_state, bool $strict)
Finds an entity from an autocomplete input without an explicit ID.
The method will return an entity ID if one single entity unambiguously matches the incoming input, and assign form errors otherwise.
static string
getEntityLabels(array $entities)
Converts an array of entity objects into a string of entity labels.
This method is also responsible for checking the 'view label' access on the passed-in entities.
static mixed|null
extractEntityIdFromAutocompleteInput(string $input)
Extracts the entity ID from the autocompletion result.