我的网站上有一个很大的表单。因为它非常大,我想把它分成两部分。我做了第一个,它正在工作。现在我想在同一页面上做第二个。它们都有相同的实体(所以基本上,我想在同一页面上做同一个实体的2种形式),但我现在不知道如何在buildForm中做到这一点。我是否需要在$ builder($ builder =我的第一个表单)旁边创建另一个变量。
感谢您的回答!
答案 0 :(得分:0)
这里有一些代码:
class myType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('numero')
->add('other')
->add('things')
}
我想要1个提交按钮表格2表格,但第二个表格不是第一次显示。仅在提交第一个表单时才会显示。
答案 1 :(得分:0)
我会做什么,我不知道这是否是最好的方式,但我会创建两种表单类型。 1)基于您的实体的表单类型和2)您将它们组合在一起的fromtype。
联系人的简单示例
class ContactType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('billing', AddressType::class);
$builder->add('shipping', AddressType::class);
}
public function getBlockPrefix() {
return 'contact';
}
}
AddressType如下所示:
class AddressType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('street', TextType::class, array())
->add('country', TextType::class, array())
;
}
public function getBlockPrefix() {
return 'address';
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => '<yourbundle>\Entity\Address',
));
}
}