public static function ViewsReferenceTrait::itemResetValues in Views Reference Field 8.2
Clears dependent form values when the view id changes.
Implemented as an #after_build callback because #after_build runs before validation, allowing the values to be cleared early enough to prevent the "Illegal choice" error.
File
- src/
Plugin/ Field/ FieldWidget/ ViewsReferenceTrait.php, line 258
Class
- ViewsReferenceTrait
- Trait for shared code in Viewsreference Field Widgets.
Namespace
Drupal\viewsreference\Plugin\Field\FieldWidgetCode
public static function itemResetValues(array $element, FormStateInterface $form_state) {
$triggering_element = $form_state
->getTriggeringElement();
if (!$triggering_element) {
return $element;
}
$keys = [
'target_id' => [
'display_id',
],
];
$triggering_element_name = end($triggering_element['#parents']);
if (isset($keys[$triggering_element_name])) {
$input =& $form_state
->getUserInput();
foreach ($keys[$triggering_element_name] as $key) {
$parents = array_merge($element['#parents'], [
$key,
]);
NestedArray::setValue($input, $parents, '');
$element[$key]['#value'] = '';
}
}
return $element;
}