Я создаю форму регистрации с помощью Symfony Forms и значение одного из полей влияет на другие (Conditional Fields) — некоторые поля становятся обязательными и их надо проверять. Например, есть два типа аккаунтов (account_type
): company
и personal
. Если выбран company
, то должно появиться поле company_name
.
Как такое можно теоретически реализовать? Если на фронте можно вывести все поля и прятать часть из них при переключении, то в PHP нужно неким образом сделать так, чтобы часть полей иногда была необязательной и не проверялась основываясь на значении другого поля.
В настоящее время я уже прочитал «How to Dynamically Modify Forms Using Form Events» (из документации), но похоже это не совсем то.
Использую компонент Forms (3.1.7) внутри WordPress плагина.
class SignUpType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('type', Type\ChoiceType::class, array(
'expanded' => true,
'multiple' => false,
'required' => true,
'choices' => array(
__('Personal', Plugin::NAME) => 'personal',
__('Company', Plugin::NAME) => 'company',
),
'data' => 'company',
))
->add('company_name', Type\TextType::class, array(
'label' => __('Company Name', Plugin::NAME),
'required' => true,
'constraints' => array(
new Constraints\NotBlank(),
new Constraints\Length(array('min'=> 2)),
),
));
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго всем дняПоставил новенький xubuntu 16
Как правильно сделать роутер что бы url был вложенным, и количество вложенности нам не известноМожно вот так (nodejs)