/** * Creates a single file. * * @param UploadedFile $uploadedFile * @param Category $category * @param ObjectManager $em * @param $type * @param null $name */ protected function createFile(UploadedFile $uploadedFile, Category $category, ObjectManager $em, $type, $name = null) { $repo = $this->getDoctrine()->getRepository(File::class); $fileName = $uploadedFile->getClientOriginalName(); $file = $repo->findOneBy(['category' => $category, 'type' => $type]); if ($file) { $file->unlink(); } else { $file = new File(); } $file->setCategory($category); $file->setPath("files/uploads/{$fileName}"); $file->setType($type); $file->setName($name); $file->setCreatedAt(new \DateTime()); $uploadedFile->move($this->get('kernel')->getRootDir() . '/../web/files/uploads', $fileName); $em->persist($file); }