public function WebformEntityAjaxFormTrait::cancelAjaxForm in Webform 8.5
Same name and namespace in other branches
- 6.x src/Form/WebformEntityAjaxFormTrait.php \Drupal\webform\Form\WebformEntityAjaxFormTrait::cancelAjaxForm()
Cancel form #ajax callback.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
\Drupal\Core\Ajax\AjaxResponse An Ajax response that display validation error messages or redirects to a URL
Overrides WebformAjaxFormTrait::cancelAjaxForm
File
- src/
Form/ WebformEntityAjaxFormTrait.php, line 99
Class
- WebformEntityAjaxFormTrait
- Trait class for Webform Ajax support.
Namespace
Drupal\webform\FormCode
public function cancelAjaxForm(array &$form, FormStateInterface $form_state) {
$entity = $this
->getEntity();
$entity_type = $entity
->getEntityTypeId();
$entity_id = $entity
->id();
// Must complete reload the entity to make sure all changes are reflected.
$entity_storage = $this->entityTypeManager
->getStorage($entity_type);
$entity_storage
->resetCache([
$entity_id,
]);
$entity = $entity_storage
->load($entity_id);
// Get form object.
$form_object = $this->entityTypeManager
->getFormObject($entity_type, $this->operation);
// Set form entity.
$form_object
->setEntity($entity);
// Set form state.
$form_state = new FormState();
$form_state
->setFormState([]);
$form_state
->setUserInput([]);
// Build form.
/** @var \Drupal\Core\Form\FormBuilderInterface $form_builder */
$form_builder = \Drupal::service('form_builder');
$form = $form_builder
->buildForm($form_object, $form_state);
// Return replace form as response.
return $this
->replaceForm($form, $form_state);
}