/** * {@inheritdoc} */ public function finishView(FormView $view, FormInterface $form, array $options) { if (false === $options['parsley_enabled']) { return; } // do nothing with root form if (null === $form->getParent()) { return; } // build constraints and map them as data attributes // form's constraints should override entity's constraints. $this->constraintBuilder->configure(['constraints' => array_merge($this->getEntityConstraints($form), $this->getFormTypeConstraints($form))]); /** @var Constraint[] $constraints */ $constraints = $this->constraintBuilder->build(); foreach ($constraints as $constraint) { $view->vars['attr'] = array_merge($view->vars['attr'], $constraint->normalize($this->normalizer)); } }