Как использовать групповую последовательность по типу формы в формах Symfony?

Идея состоит в том, чтобы сначала проверить, если все обязательные поля не являются пустыми. Если предоставлены все необходимые данные, проверьте правильность введенных значений. Обычный случай для групповой последовательности. Как всегда, когда я применяю new GroupSequence(["Basic", "Strict"]) к validation_groups Опция оказывается форма действительной, даже если все поля являются пустыми. Если validation_groups значение установлено в ["Basic", "Strict"] форма проверена правильно, но со всеми ограничениями, и это не то, что я хочу. Что я делаю неправильно?

Вот мой код:

class MyType extends AbstractType
{

public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add("name", null, [
"constraints" => new NotBlank(["groups" => ["Basic"]])
])
->add("phone", MyPhoneType::class, [
"constraints" => [
new NotBlank(["groups" => ["Basic"]]),
new PhoneNumber(["groups" => ["Strict"])
]
])
->add("email", EmailType::class, [
"constraints" => [
new NotBlank(["groups" => ["Basic"]]),
new Email(["groups" => ["Strict"]]),
],
])
;
}

public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
"validation_groups" => new GroupSequence(["Basic", "Strict"])
]);
}
}

3

Решение

Это известный ошибка Symfony версии 2.8 и исправлены более новые версии.

Но я также не видел никакой документации, которая показывает, что вы можете использовать GroupSequence когда настроить validation_groups вариант.

Я предполагаю, что при использовании Symfony 2.8 пользовательский валидатор который берет на себя все проверки — лучший выбор в такой ситуации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]