Example #1
0
 /**
  * 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.:
  * @code
  * foreach ($violations->getByField('name') as $violation) {
  *   $form_state->setErrorByName('name', $violation->getMessage());
  * }
  * parent::flagViolations($violations, $form, $form_state);
  * @endcode
  *
  * @param \Drupal\Core\Entity\EntityConstraintViolationListInterface $violations
  *   The violations to flag.
  * @param array $form
  *   A nested array of form elements comprising the form.
  * @param \Drupal\Core\Form\FormStateInterface $form_state
  *   The current state of the form.
  */
 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('', $violation->getMessage());
     }
     // Let the form display flag violations of its fields.
     $this->getFormDisplay($form_state)->flagWidgetsErrorsFromViolations($violations, $form, $form_state);
 }