public function EntityFormDisplay::flagWidgetsErrorsFromViolations

public EntityFormDisplay::flagWidgetsErrorsFromViolations(EntityConstraintViolationListInterface $violations, array &$form, FormStateInterface $form_state)

Flags entity validation violations as form errors.

This method processes all violations passed, thus any violations not related to fields of the form display must be processed before this method is invoked.

The method flags constraint violations related to fields shown on the form as form errors on the correct form elements. Possibly pre-existing violations of hidden fields (so fields not appearing in the display) are ignored. Other, non-field related violations are passed through and set as form errors according to the property path of the violations.

Parameters

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

array $form: The form structure where field elements are attached to. This might be a full form structure, or a sub-element of a larger form.

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

Overrides EntityFormDisplayInterface::flagWidgetsErrorsFromViolations

File

core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php, line 248

Class

EntityFormDisplay
Configuration entity that contains widget options for all components of a entity form in a given form mode.

Namespace

Drupal\Core\Entity\Entity

Code

public function flagWidgetsErrorsFromViolations(EntityConstraintViolationListInterface $violations, array &$form, FormStateInterface $form_state) {
  $entity = $violations->getEntity();
  foreach ($violations->getFieldNames() as $field_name) {
    // Only show violations for fields that actually appear in the form, and
    // let the widget assign the violations to the correct form elements.
    if ($widget = $this->getRenderer($field_name)) {
      $field_violations = $this->movePropertyPathViolationsRelativeToField($field_name, $violations->getByField($field_name));
      $widget->flagErrors($entity->get($field_name), $field_violations, $form, $form_state);
    }
  }
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Entity!Entity!EntityFormDisplay.php/function/EntityFormDisplay::flagWidgetsErrorsFromViolations/8.1.x