【问题标题】:How to render the input with VichUploaderBundle?如何使用 VichUploaderBundle 渲染输入?
【发布时间】:2020-01-15 17:04:12
【问题描述】:

我在使用 Symfony 4 的捆绑包 VichUploaderBundle 时遇到了问题。 我已经按照教程使用 VichUploaderBundle 进行上传以上传多个文件。

我的问题是上传文件的输入表单永远不会呈现。但我看不出我的 Type 文件有什么问题。

在可以找到所有字段的 MemberType 中,我已经

...
            ->add('member_files', CollectionType::class, [
                'label' => 'Add a file',
                'entry_type' => MemberFilesType::class,
                'allow_add' => true,
                'allow_delete' => true,
                'prototype' => true
            ])
...

而我的 MemberFilesType 是:

<?php

namespace App\Form;

use App\Entity\MemberFiles;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Vich\UploaderBundle\Form\Type\VichImageType;


class MemberFilesType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('imageFile', VichImageType::class, [
                'required' => false,
                'download_uri' => true,
                'image_uri' => true
            ])
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => MemberFiles::class,
        ]);
    }
}

你有什么想法吗?

【问题讨论】:

  • “从不渲染”是什么意思?会发生什么?
  • 感谢您的回答!标签存在,但字段不存在...

标签: php symfony file-upload symfony4 vichuploaderbundle


【解决方案1】:

如果您正在使用 Member 而没有 MemberFiles(空集合),那么这就是预期的结果。没有集合条目,因为没有持久化,请在创建表单之前尝试将新的 MemberFiles 添加到 Member

在您的控制器操作中:

if(empty($member->getMemberFiles())){
  $member->addMemberFile(new MemberFiles());
}
$form = $this->createForm(MemberType::class, $member);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2018-11-26
    • 2019-10-09
    • 2020-07-10
    相关资源
    最近更新 更多