/** * 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; }
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)); }