BonBonSlick
@BonBonSlick
Junior Web Developer Trainee

Проверка валидно ли поле из метадаты в callback констрейнт?

https://symfony.com/doc/current/reference/constrai...
public static function loadValidatorMetadata(ClassMetadataInterface $classMetadata): void {
   // валидация полей
   $classMetadata->addPropertyConstraints(
            'email',
            [
                new Sequentially(
                    [
                        new NotBlank(),
                   ....
                    ]
                ),
            ]
        );
        $classMetadata->addConstraint(new Callback(['callback' => 'validate']));
    }


/**
     * @throws WrongInstanceOfClassException
     * @throws BadParameterException
     */
    public function validate(ExecutionContextInterface $context): void {
        /** @var ClassMetadataInterface $classMetadata */
        $classMetadata = $context->getMetadata();
        if (false === $classMetadata instanceof ClassMetadataInterface) {
            throw new WrongInstanceOfClassException();
        }

// если поле валидно, добавить еще динамические констрейнты  

if(true  === $metadata->isValid('email')){
  $metadata->addPropertyConstraints(
            'email',
            [
               // дополнительные правила 
            ]
        );
}

Есть ли решение из коробки или костылявить?
  • Вопрос задан
  • 20 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы