我的应用程序管理家庭。一个家庭由1个或N个成员组成。
我想要添加一个或两个父母以及0个或N个孩子的可能性。孩子部分工作正常,但是我在处理1或2个父母时遇到了困难。
这是我的家庭表单类型:
$builder
... many attributes
->add('parent1', MemberType::class)
->add('parent2', MemberType::class)
Parent和parent2是OneToOne关联(从家庭到成员)。成员表单类型:
$builder
->add('firstName', TextType::class, [
'label' => 'Prénom',
'constraints' => array(
new NotBlank(),
new Length(array('max' => 150))
)
])
... many other attributes with choices or not
我考虑添加一个复选框,如果未选中,则将父级2的字段变灰,但成员值都是必填的。因此,SF2无法验证我的表单。
如果我将这些字段(在构建器中)设置为required => false,则用户将有可能在不填写所有内容的情况下进行验证(我不想要这种情况)。
我想创建以下过程:
- 要么我们填写成员2的所有字段以验证表单
- 要么我们勾选复选框(单个父级),不需要任何字段,我的最终成员2将为空(或另一种解决方案)