В настоящее время я немного застрял:
Я хочу создать специальную проверку для моего пользовательского объекта, которая будет выполняться только тогда, когда все другие проверки пройдены успешно.Это может быть решено с помощью @GroupSequence и валидаторов в группах до последней группы, содержащей мой «специальный» валидатор:
use FOS\UserBundle\Model\User as BaseUser;
...
/*
* @Assert\GroupSequence({"User", "Strict"})
* @UniqueEntity("email", message="xx", groups={"User"})
* @MyAssert\UserValidConstraint(groups={"Strict"})
*/
class User extends BaseUser {
....
}
При этом моя UserValidConstraint не выполняется, когда электронная почта не является уникальной - то естьожидается, и это поведение, которое я хочу получить.
Также выполняются ограничения из базового класса.Я получаю сообщения об ошибках из базового класса, если пароль слишком короткий и т. Д. Также работает должным образом.
Но моя проблема заключается в том, что мое специальное ограничение также всегда выполняется при сбое этих проверок базового класса.
Этокажется, что эти проверки как-то не распознаются этим правилом GroupSequence.
Любые намеки, что я могу делать не так?Или это ошибка в Symfony?
Использование
Symfony 4.1.4 FOS Userbundle из git / dev-master