如何使用" allow-add"

时间:2017-08-07 16:27:21

标签: symfony

我的表单效果非常好,但我想使用" allow_add"能够上传另一个文件。 我想知道如何使用它,因为这是我第一次使用它。

这是我的两个表单和我的类型: 用户类型:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('firstname',TextType::class)
        ->add('lastname', TextType::class)
        ->add('email', EmailType::class)
        ->add('fichiers', CollectionType::class, array(
            'type' => new UserFileType(),
            'allow_add' => true,
            'allow_delete' => true,
            'prototype' => true,
            'by_reference' => false,
            'data' => array(new UserFile())))
    ;
}

UserFileType:

 public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('documentFile', 'file',array(
        'label' => 'Uploader'
    ))
    ;
}

查看:

{{ form_start(form) }}
            <div class="add-user-form-input">
                <div class="col-md-6 col-sm-6">
                    {{ form_widget(form.firstname,{'attr': {'placeholder': 'Nom'}})}}
                </div>

                <div class="col-md-6 col-sm-6">
                    {{ form_widget(form.lastname,{'attr': {'placeholder': 'Prénom', 'class' : 'last-input'}})}}
                </div>

                <div class="col-md-12 col-sm-12">
                    {{ form_widget(form.email,{'attr': {'placeholder': 'Email', 'class' : 'last-input'}})}}
                </div>                   

                <div class="col-md-6 col-sm-6">
                    {% for fichier in form.fichiers %}
                        {{ form_row(fichier.documentFile) }}
                    {% endfor %}
                </div>

                <div class="col-md-6 col-sm-6">
                    {{ form_widget(form.save,{'attr': { 'class' : 'add-user-upload-one'}})}}
                </div>
            </div>
        {{ form_end(form) }}

我提前感谢你:)。

2 个答案:

答案 0 :(得分:1)

您可以使用:https://knpuniversity.com/screencast/collections/add-new-collection-prototype

我认为这正是您正在寻找的;)

正确定制时,它已经足够了

答案 1 :(得分:0)

尝试使用Symfony内置的FileType(How to upload files in symfony))上传文件。
您应该可以执行以下操作:

->add('fichiers', FileType::class, array(
     'multiple' => true
))

由于其他原因,不确定您是否需要自定义表单类型,但如果不这样做,则效果非常好。