X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=vendor%2Fsymfony%2Fvalidator%2FConstraints%2FAbstractComparison.php;h=0a7e2f3fb733ef103a7a3a38b303f5596a095cb9;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hp=e20a8f3fb7b050950a362bab25c15e845005548d;hpb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;p=yaffs-website diff --git a/vendor/symfony/validator/Constraints/AbstractComparison.php b/vendor/symfony/validator/Constraints/AbstractComparison.php index e20a8f3fb..0a7e2f3fb 100644 --- a/vendor/symfony/validator/Constraints/AbstractComparison.php +++ b/vendor/symfony/validator/Constraints/AbstractComparison.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Validator\Constraints; +use Symfony\Component\PropertyAccess\PropertyAccess; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; @@ -24,6 +25,7 @@ abstract class AbstractComparison extends Constraint { public $message; public $value; + public $propertyPath; /** * {@inheritdoc} @@ -34,11 +36,18 @@ abstract class AbstractComparison extends Constraint $options = array(); } - if (is_array($options) && !isset($options['value'])) { - throw new ConstraintDefinitionException(sprintf( - 'The %s constraint requires the "value" option to be set.', - get_class($this) - )); + if (\is_array($options)) { + if (!isset($options['value']) && !isset($options['propertyPath'])) { + throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires either the "value" or "propertyPath" option to be set.', \get_class($this))); + } + + if (isset($options['value']) && isset($options['propertyPath'])) { + throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires only one of the "value" or "propertyPath" options to be set, not both.', \get_class($this))); + } + + if (isset($options['propertyPath']) && !class_exists(PropertyAccess::class)) { + throw new ConstraintDefinitionException(sprintf('The "%s" constraint requires the Symfony PropertyAccess component to use the "propertyPath" option.', \get_class($this))); + } } parent::__construct($options);