/**
  * @param mixed                   $value
  * @param string                  $viewValue
  * @param Constraint[]|Constraint $constraints
  * @param string                  $subPath
  * @param ValuesBag               $valuesBag
  * @param string[]                $validationGroups
  */
 private function validateValue($value, $viewValue, $constraints, $subPath, ValuesBag $valuesBag, $validationGroups = null)
 {
     if ($this->validator instanceof LegacyValidator) {
         $violations = $this->validator->validateValue($value, $constraints, $validationGroups);
     } else {
         $violations = $this->validator->validate($value, $constraints, $validationGroups);
     }
     foreach ($violations as $violation) {
         $valuesBag->addError($this->createError($violation, $viewValue, $subPath));
     }
 }
Example #2
0
 /**
  * @param array $item
  *
  * @return boolean
  */
 public function __invoke(array $item)
 {
     if (!$this->strict) {
         // Only validate properties which have an constaint.
         $temp = array_intersect(array_keys($item), array_keys($this->constraints));
         $item = array_intersect_key($item, array_flip($temp));
     }
     $constraints = new Constraints\Collection($this->constraints);
     $list = $this->validator->validateValue($item, $constraints);
     $currentLine = $this->line++;
     if (count($list) > 0) {
         $this->violations[$currentLine] = $list;
         if ($this->throwExceptions) {
             throw new ValidationException($list, $currentLine);
         }
     }
     return 0 === count($list);
 }