X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fsymfony%2Fvalidator%2FConstraints%2FAbstractComparison.php;fp=vendor%2Fsymfony%2Fvalidator%2FConstraints%2FAbstractComparison.php;h=c41f371e3ae3a18c0d13c7c13377d61cab02a366;hp=e20a8f3fb7b050950a362bab25c15e845005548d;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/vendor/symfony/validator/Constraints/AbstractComparison.php b/vendor/symfony/validator/Constraints/AbstractComparison.php index e20a8f3fb..c41f371e3 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);