You are here

public function WebformEntityElementsForm::validateForm in Webform 8.5

Same name and namespace in other branches
  1. 6.x src/WebformEntityElementsForm.php \Drupal\webform\WebformEntityElementsForm::validateForm()

Form validation handler.

Parameters

array $form: An associative array containing the structure of the form.

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

Overrides FormBase::validateForm

File

src/WebformEntityElementsForm.php, line 145

Class

WebformEntityElementsForm
Webform manage elements YAML source form.

Namespace

Drupal\webform

Code

public function validateForm(array &$form, FormStateInterface $form_state) {
  parent::validateForm($form, $form_state);
  if ($form_state
    ->hasAnyErrors()) {
    return;
  }

  /** @var \Drupal\webform\WebformInterface $webform */
  $webform = $this
    ->getEntity();
  $elements = $webform
    ->getElementsDecoded();
  $this
    ->addWebformTypePrefixRecursive($elements);
  $webform
    ->setElements($elements);

  // Validate elements YAML.
  if ($messages = $this->elementsValidator
    ->validate($webform)) {
    $form_state
      ->setErrorByName('elements');
    foreach ($messages as $message) {
      $this
        ->messenger()
        ->addError($message);
    }
  }
}