From d96e2c5d79a35fea38147669a456532281550761 Mon Sep 17 00:00:00 2001 From: John Wards Date: Tue, 10 May 2011 12:12:18 +0100 Subject: [PATCH] [Validator] Adding support for Closure in CallbackValidator Usage: $formBuilder = $this->get('form.factory') ->createBuilder('form'); $formBuilder->setAttribute('validation_constraint', new Callback(array("methods"=>array( 'validate' => function ($data, $context) use ($elements) { // logic to add violations depending on the elements } )))); --- .../Component/Validator/Constraints/CallbackValidator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/Constraints/CallbackValidator.php b/src/Symfony/Component/Validator/Constraints/CallbackValidator.php index 71bceb36b7ae..102838d80c5d 100644 --- a/src/Symfony/Component/Validator/Constraints/CallbackValidator.php +++ b/src/Symfony/Component/Validator/Constraints/CallbackValidator.php @@ -45,7 +45,7 @@ public function isValid($object, Constraint $constraint) $propertyPath = $context->getPropertyPath(); foreach ($methods as $method) { - if (is_array($method)) { + if (is_array($method) || $method instanceof \Closure) { if (!is_callable($method)) { throw new ConstraintDefinitionException(sprintf('"%s::%s" targeted by Callback constraint is not a valid callable', $method[0], $method[1])); }