keep the context when validating forms

This commit is contained in:
Christian Flothmann 2018-01-26 17:21:59 +01:00
parent 4f47bb73a0
commit 317da3bdf8
2 changed files with 4 additions and 0 deletions

View File

@ -124,6 +124,7 @@ class FormValidator extends ConstraintValidator
: gettype($form->getViewData());
if ($this->context instanceof ExecutionContextInterface) {
$this->context->setConstraint($constraint);
$this->context->buildViolation($config->getOption('invalid_message'))
->setParameters(array_replace(array('{{ value }}' => $clientDataAsString), $config->getOption('invalid_message_parameters')))
->setInvalidValue($form->getViewData())
@ -144,6 +145,7 @@ class FormValidator extends ConstraintValidator
// Mark the form with an error if it contains extra fields
if (!$config->getOption('allow_extra_fields') && count($form->getExtraData()) > 0) {
if ($this->context instanceof ExecutionContextInterface) {
$this->context->setConstraint($constraint);
$this->context->buildViolation($config->getOption('extra_fields_message'))
->setParameter('{{ extra_fields }}', implode('", "', array_keys($form->getExtraData())))
->setInvalidValue($form->getExtraData())

View File

@ -51,6 +51,8 @@ class FormValidatorTest extends AbstractConstraintValidatorTest
$this->serverParams = $this->getMockBuilder('Symfony\Component\Form\Extension\Validator\Util\ServerParams')->setMethods(array('getNormalizedIniPostMaxSize', 'getContentLength'))->getMock();
parent::setUp();
$this->constraint = new Form();
}
protected function getApiVersion()