public function validateOne(ExecutionContext $context) { $context->setCurrentClass('Foo'); $context->setCurrentProperty('bar'); $context->setGroup('mygroup'); $context->setPropertyPath('foo.bar'); $context->addViolation('My message', array('parameter'), 'invalidValue'); }
/** * Validates the data of a form * * This method is called automatically during the validation process. * * @param FormInterface $form The validated form * @param ExecutionContext $context The current validation context */ public static function validateFormData(FormInterface $form, ExecutionContext $context) { if (is_object($form->getData()) || is_array($form->getData())) { $propertyPath = $context->getPropertyPath(); $graphWalker = $context->getGraphWalker(); // The Execute constraint is called on class level, so we need to // set the property manually $context->setCurrentProperty('data'); // Adjust the property path accordingly if (!empty($propertyPath)) { $propertyPath .= '.'; } $propertyPath .= 'data'; foreach (self::getFormValidationGroups($form) as $group) { $graphWalker->walkReference($form->getData(), $group, $propertyPath, true); } } }
public static function validateFormChildren(FormInterface $form, ExecutionContext $context) { if ($form->getAttribute('cascade_validation')) { $propertyPath = $context->getPropertyPath(); $graphWalker = $context->getGraphWalker(); // The Execute constraint is called on class level, so we need to // set the property manually $context->setCurrentProperty('children'); // Adjust the property path accordingly if (!empty($propertyPath)) { $propertyPath .= '.'; } $propertyPath .= 'children'; foreach (self::getFormValidationGroups($form) as $group) { $graphWalker->walkReference($form->getChildren(), $group, $propertyPath, true); } } }
/** * Validates the data of this form * * This method is called automatically during the validation process. * * @param ExecutionContext $context The current validation context */ public function validateData(ExecutionContext $context) { if (is_object($this->getData()) || is_array($this->getData())) { $groups = $this->getValidationGroups(); $propertyPath = $context->getPropertyPath(); $graphWalker = $context->getGraphWalker(); if (null === $groups) { $groups = array(null); } // The Execute constraint is called on class level, so we need to // set the property manually $context->setCurrentProperty('data'); // Adjust the property path accordingly if (!empty($propertyPath)) { $propertyPath .= '.'; } $propertyPath .= 'data'; foreach ($groups as $group) { $graphWalker->walkReference($this->getData(), $group, $propertyPath, true); } } }