Я создаю форму регистрации с помощью 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)),
),
));
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости