【发布时间】:2021-11-10 14:23:31
【问题描述】:
我正在尝试创建一个包含两个动态表单元素的动态表单。
我已经按照https://symfony.com/doc/current/form/dynamic_form_modification.html#dynamic-generation-for-submitted-forms中的示例进行操作
我可以在选择并提交运动后创建一个显示新表单元素位置的表单。
但是让我们说,在选择了一个职位并提交后,他们必须选择一种颜色,你会怎么做呢?
我尝试为位置添加一个新的事件侦听器,但它从未被调用。
$builder->get('position')->addEventListener(
FormEvents::POST_SUBMIT,
function (FormEvent $event) use ($formModifier) {
// It's important here to fetch $event->getForm()->getData(), as
// $event->getData() will get you the client data (that is, the ID)
$position = $event->getForm()->getData();
dump($position);
$event->getForm()->add('colour', EntityType::class, [
'class' => Colour::class,
'placeholder' => '',
'choices' => ['red','green','blue'],
]);
}
);
例如在这个测试数据中,运动是足球,位置是前锋,允许的颜色是红色和绿色,对于位置守门员,颜色可能是黄色和黑色。
【问题讨论】:
标签: symfony symfony4 symfony-forms