You are here

protected function FieldableEdgeEntityForm::flagViolations in Apigee Edge 8

Flags violations for the current form.

If the entity form customly adds some fields to the form (i.e. without using the form display), it needs to add its fields to array returned by getEditedFieldNames() and overwrite this method in order to show any violations for those fields; e.g.:

foreach ($violations
  ->getByField('name') as $violation) {
  $form_state
    ->setErrorByName('name', $violation
    ->getMessage());
}
parent::flagViolations($violations, $form, $form_state);

@todo Add missing return type-hint in 2.x.

Parameters

\Drupal\Core\Entity\EntityConstraintViolationListInterface $violations: The violations to flag.

array $form: A nested array of form elements comprising the form.

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

1 call to FieldableEdgeEntityForm::flagViolations()
FieldableEdgeEntityForm::validateForm in src/Entity/Form/FieldableEdgeEntityForm.php
TODO Add missing return type-hint in 2.x.

File

src/Entity/Form/FieldableEdgeEntityForm.php, line 152

Class

FieldableEdgeEntityForm
Base entity form for fieldable Apigee Edge entity types.

Namespace

Drupal\apigee_edge\Entity\Form

Code

protected function flagViolations(EntityConstraintViolationListInterface $violations, array $form, FormStateInterface $form_state) {

  // Flag entity level violations.
  foreach ($violations
    ->getEntityViolations() as $violation) {

    /** @var \Symfony\Component\Validator\ConstraintViolationInterface $violation */
    $form_state
      ->setErrorByName(str_replace('.', '][', $violation
      ->getPropertyPath()), $violation
      ->getMessage());
  }

  // Let the form display flag violations of its fields.
  $this
    ->getFormDisplay($form_state)
    ->flagWidgetsErrorsFromViolations($violations, $form, $form_state);
}