Мы переносим довольно большое приложение Symfony 3.4 на 4.3 с помощью flex.Правила проверки для наших сущностей находятся в отдельном файле validation.yaml.Есть много сущностей и намного больше правил, поэтому мы не будем сейчас переходить на аннотации.
В документации описано, как использовать валидатор с отдельным файлом yaml.это работает нормально в тех редких случаях, когда мы используем валидатор напрямую, однако большинство проверок выполняется, когда формы отправляются следующим образом:
$userForm->handleRequest($request);
if ($userForm->isSubmitted() && $userForm->isValid()) {
// persist form data
}
Здесь правила в validation.yml игнорируются, поэтому большинство нашихформы больше не проверяются.
Вся конфигурация для валидатора - это правило в /config/packages/validator.yaml
framework:
validation:
email_validation_mode: html5
И это правило в / config / packages / framework.yaml
framework:
// other stuff
validation: { enabled: true }
Мы тщательно изучили документы и Интернет, чтобы найти способ заставить проверки в формах работать снова, но не смогли найти или не смогли понять, как это сделать.Итак, вопрос:
Как заставить проверку формы работать с использованием правил проверки сущностей в отдельном файле yaml?
Редактировать:
Как и было задано, вот содержаниенашего config / validator / validation.yaml (первые три объекта, этот файл огромен. Искаженный отступ - это кодовый блок stackoverflow, не так в нашем файле, я постараюсь привести его в порядок)
AppBundle\Entity\TaxSetting:
properties:
tarif:
- NotBlank:
message: 'tax.tarif.empty'
- Range:
min: 0
max: 100
minMessage: 'tax.tarif.too_low'
maxMessage: 'tax.tarif.too_high'
fiscalDifference:
- NotBlank:
message: 'tax.fiscaldifference.empty'
- Range:
min: -2147483646
max: 2147483646
minMessage: 'tax.fiscaldifference.too_low'
maxMessage: 'tax.fiscaldifference.too_high'
AppBundle\Entity\AdministrationUser:
properties:
user:
- NotBlank:
message: 'administrationuser.user.empty'
administration:
- NotBlank:
message: 'administrationuser.administration.empty'
AppBundle\Entity\AdministrationUserGroup:
properties:
userGroup:
- NotBlank:
message: 'administrationusergroup.usergroup.empty'
administration:
- NotBlank:
message:'administrationusergroup.administration.empty'