#php #symfony #validation
#php #symfony #проверка
Вопрос:
Я хочу добавить больше проверок динамически внутри контроллера действий. У меня есть общие проверки, config/validator/validation.yaml
но я хочу загрузить и добавить другие проверки, зависит от логики внутри контроллера действий в Symfony 4. Я не хочу делать это с группами проверки, потому что у меня будет много возможностей, и я предпочитаю разные файлы для каждой логики.
public function myAction(Request $request, ValidatorInterface $validator)
{
...
if($something){
//load a validation1.yaml
}
else{
//load a validation2.yaml
}
$violations = $validator->validate($user);
...
}
Общая проверка.yaml:
AppEntityUser:
properties:
email:
- NotBlank:
message: "'email' is a mandatory field."
В моем validation1.yaml:
AppEntityUser:
properties:
firstName:
- NotBlank:
message: "'FirstName' is a mandatory field."
И другие ограничения в моем validation2.yaml:
AppEntityUser:
properties:
Комментарии:
1. Привет, а как насчет групп проверки? symfony.com/doc/current/validation/groups.html
2. @Nek Я не хочу делать это с группами, потому что у меня должно быть много групп. И если я захочу добавить больше групп в будущем, мне придется добавить эту группу к каждому ограничению. Я предпочитаю иметь partner1.yaml, partner2.yaml … чем группы [partner1, partner2 …] в каждом свойстве
3. Затем вам нужно настроить средство проверки самостоятельно. Вы можете создать фабрику валидаторов (службу Symfony), которая создает валидатор для вас. См. symfony.com/doc/current/components/validator /…