/**
  * Convert a localized attribute
  *
  * @param LocalizerInterface $localizer
  * @param array              $item
  * @param array              $options
  * @param string             $path
  *
  * @return array
  */
 protected function convertLocalizedToDefaultValue(LocalizerInterface $localizer, array $item, array $options, $path)
 {
     $violations = $localizer->validate($item['data'], $path, $options);
     if (null !== $violations) {
         $this->violations->addAll($violations);
     }
     $item['data'] = $localizer->delocalize($item['data'], $options);
     return $item;
 }
Exemple #2
0
 public function validate($model)
 {
     $builder = new ValidatorBuilder();
     $builder->setTranslator($this->service->getTranslator());
     $validator = $builder->getValidator();
     $validations = $this->getValidations();
     $this->violations = new ConstraintViolationList();
     foreach ($validations as $column => $validation) {
         $method = 'get' . NameUtils::toStudlyCase($column);
         if (method_exists($model, $method)) {
             $value = $model->{$method}();
             $constraints = [];
             foreach ($validation as $options) {
                 $name = $options['constraint'];
                 unset($options['constraint']);
                 $constraints[] = $this->getConstraint($name, $options);
             }
             $violations = $validator->validate($value, $constraints);
             $this->violations->addAll($violations);
         }
     }
     return (bool) (!(count($this->violations) > 0));
 }