Как правильно массово загрузить файлы в форме?

106
02 июня 2021, 23:50

Всем привет. Нужно загружать 3 файла в форме, они хранятся в отдельной таблице.

Есть 2 сущности:

Application:

 /**
 * @ORM\OneToMany(targetEntity="App\Entity\File", mappedBy="application", cascade={"persist"})
 */
private $files;
/**
 * @return Collection|File[]
 */
public function getFiles(): Collection
{
    return $this->files;
}
public function addFile(File $file): self
{
    if (!$this->files->contains($file)) {
        $this->files[] = $file;
        $file->setApplication($this);
    }
    return $this;
}

File:

 /**
 * @ORM\ManyToOne(targetEntity="App\Entity\Application", inversedBy="files",)
 * @ORM\JoinColumn(nullable=false)
 */
private $application;
public function getApplication(): ?Application
{
    return $this->application;
}
public function setApplication(?Application $application): self
{
    $this->application = $application;
    return $this;
}

Создал с билдером полей ApplicationFormType:

            ->add('files', CollectionType::class, [
            'entry_type' => UploadFileType::class,
            'label' => 'Файлы',
            'allow_add' => true,
            'by_reference' => false,
            'mapped' => false
        ])

И создал билдер с полями нужных файлов UploadFileType:

        $builder->add('name', FileType::class, [
        'label' => 'Файл 1',
    ]);
    $builder->add('name', FileType::class, [
        'label' => 'Файл 2',
    ]);
    $builder->add('name', FileType::class, [
        'label' => 'Файл 3',
    ]);

На вьюхе вывожу:

        {{form_start(form)}}
    <input type="file" name="application_form[files][file_one]">
    {{form_end(form)}}

Но при сохранение выдает ошибку:

Could not determine access type for property "files" in class "App\Entity\Application": Neither the property "files" nor one of the methods "addFil()"/"removeFil()", "addFile()"/"removeFile()", "setFiles()", "files()", "__set()" or "__call()" exist and have public access in class "App\Entity\Application".

Хотя метод AddFile есть, в чем ошибка?

Answer 1

Видел где то подобное, там получилось исправить 'multiple' => false,

READ ALSO
Как в java получить все числа месяца?

Как в java получить все числа месяца?

Всем доброго времени суток! Например, у меня на входе есть String date = "052018" (май 2018)

277
Проблема SSL Android

Проблема SSL Android

У меня есть проблемаЯ настроил на сервере ларавел на порту 8080

106
Java альтернативная RLE-распаковка

Java альтернативная RLE-распаковка

Есть метод, осуществляющий распаковку строки а-ля 2AB3C в AABCCC

109
EditText изменение данных в модели и применение измененных данных MVP

EditText изменение данных в модели и применение измененных данных MVP

Моя реализация очень похожа на тот что в примере

103