【问题标题】:Repeat the same fields in a form在表单中重复相同的字段
【发布时间】:2017-04-20 22:30:10
【问题描述】:

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


我希望用户提交多个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- 我可以将它存储为一个数组,但仍然应用一些验证规则吗?

【问题讨论】:

    标签: symfony symfony-forms symfony-2.1


    【解决方案1】:

    尝试使用:

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

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

    查看How to Embed a Collection of Forms Cookbook 页面。

    【讨论】:

    • 我认为你是对的@Juan。你觉得有办法收集name + phone吗?
    • 是的,您还应该在您的 PhoneType 类中添加一个名称字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2014-12-28
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多