1

在表单中重复相同表单域的最佳方式是什么?


我希望用户提交多Name / Phone number行。

class contactType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name1', 'text')
            ->add('phone1', 'text');

            ->add('name2', 'text')
            ->add('phone2', 'text');

            ->add('name3', 'text')
            ->add('phone3', 'text');

            ....etc
    }
}

理想情况下,我希望用户输入任意数量的字段......

1-有没有办法避免在这里重复代码?

2- 我应该如何将这些姓名/电话存储在基础对象中?

3- 我可以将它存储为一个数组,但仍然应用一些验证规则吗?

4

1 回答 1

2

尝试使用:

$builder->add('phones', 'collection', array('type' => new PhoneType()));

'allow_add' => true您的表单生成器中。

查看如何嵌入表单集合手册页面。

于 2012-10-30T03:59:39.033 回答