/**
* {@inheritdoc}
*/
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);
} } } /**
* Moves the property path to be relative to field level.
*
* @param string $field_name
* The field name.
* @param \Symfony\Component\Validator\ConstraintViolationListInterface $violations
* The violations.
*
* @return \Symfony\Component\Validator\ConstraintViolationList
* A new constraint violation list with the changed property path.
*/