EntityReferenceRevisionsAutocompleteWidget.php in Entity Reference Revisions 8
File
src/Plugin/Field/FieldWidget/EntityReferenceRevisionsAutocompleteWidget.phpView source
<?php
namespace Drupal\entity_reference_revisions\Plugin\Field\FieldWidget;
use Drupal\Core\Field\Plugin\Field\FieldWidget\EntityReferenceAutocompleteWidget;
use Drupal\Core\Form\FormStateInterface;
/**
* Plugin implementation of the 'entity_reference_autocomplete' widget.
*
* @FieldWidget(
* id = "entity_reference_revisions_autocomplete",
* label = @Translation("Autocomplete"),
* description = @Translation("An autocomplete text field."),
* field_types = {
* "entity_reference_revisions"
* }
* )
*/
class EntityReferenceRevisionsAutocompleteWidget extends EntityReferenceAutocompleteWidget {
/**
* {@inheritdoc}
*/
public function massageFormValues(array $values, array $form, FormStateInterface $form_state) {
$entity_type = $this->fieldDefinition
->getFieldStorageDefinition()
->getSetting('target_type');
foreach ($values as $key => $value) {
if ($value['target_id']) {
$entity = \Drupal::entityTypeManager()
->getStorage($entity_type)
->load($value['target_id']);
// Add the current revision ID.
$values[$key]['target_revision_id'] = $entity
->getRevisionId();
}
// The entity_autocomplete form element returns an array when an entity
// was "autocreated", so we need to move it up a level.
if (is_array($value['target_id'])) {
unset($values[$key]['target_id']);
$values[$key] += $value['target_id'];
}
}
return $values;
}
}
Classes
Name![]() |
Description |
---|---|
EntityReferenceRevisionsAutocompleteWidget | Plugin implementation of the 'entity_reference_autocomplete' widget. |