我的表单效果非常好,但我想使用" 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) }}
我提前感谢你:)。
答案 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
))
由于其他原因,不确定您是否需要自定义表单类型,但如果不这样做,则效果非常好。