通过Vich Uploader

时间:2017-04-18 14:29:32

标签: php symfony doctrine vichuploaderbundle

我试图为我的应用构建更智能的上传结构。到目前为止,我已经有了在控制器中上传文件的代码,一切都更加手动。现在我想在Symfony中使用VichUploader,但是我在使用多个文件时遇到了问题。

首先,我没有一个包含文件的实体,但是包含多个文件实体的实体。更明确一点:实体DocumentoneToMany的关联File。所以我使用CollectionType构建一个表单:

$builder->add('files', Type\CollectionType::class, [
    'entry_type' => Type\FileType::class
])

但是因为当我添加新文档时还没有文件,所以没有显示上传字段。即使已经存在文件(在编辑表单上),也不应该显示上传字段,而应该显示带有文件名的文本字段。

我怎样才能实现这一目标?我还需要添加带有多个FileType的umapped字段files_new()吗?然后VichUploader自动东西不起作用。

1 个答案:

答案 0 :(得分:0)

如果你传递一个空文件对象,你应该输入你的html文件,因为它是一个集合

在您的控制器中(我没有您的代码)

$entity = new Entity()
$entity->addFile(new FileEntity())//Add an empty file object


$form = $this->createForm(YourType::class, $entity);
$form->handleRequest($request);