通过 Vich Uploader 使用新文件的 symfony 表单

symfony form with new files via Vich Uploader

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

首先,我没有一个带有文件的实体,而是一个包含多个文件实体的实体。更清楚地说:实体 DocumentFileoneToMany 关系。所以我用 CollectionType:

构建了一个表单
$builder->add('files', Type\CollectionType::class, [
    'entry_type' => Type\FileType::class
])

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

我怎样才能做到这一点?我还需要添加一个具有多个文件类型的映射字段 files_new() 吗?那么VichUploader的自动东西就不行了。

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

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

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


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