Facebook
From ml, 3 Years ago, written in PHP.
Embed
Download Paste or View Raw
Hits: 162
  1. * Create action.
  2.      *
  3.      * @param \Symfony\Component\HttpFoundation\Request $request HTTP request
  4.      * @param \App\Repository\SeedRepository $seedRepository Seed repository
  5.      *
  6.      * @param SluggerInterface $slugger
  7.      * @param FileUploader $fileUploader
  8.      * @return \Symfony\Component\HttpFoundation\Response HTTP response
  9.      *
  10.      * @throws \Doctrine\ORM\ORMException
  11.      * @throws \Doctrine\ORM\OptimisticLockException
  12.      * @Route(
  13.      *     "/create",
  14.      *     methods={"GET", "POST"},
  15.      *     name="create",
  16.      * )
  17.      */
  18.     public function create(Request $request, SluggerInterface $slugger, FileUploader $fileUploader): Response
  19.     {
  20.         $seed = new Seed();
  21.         $form = $this->createForm(SeedType::class, $seed);
  22.         $form->handleRequest($request);
  23.  
  24.         if ($form->isSubmitted() && $form->isValid()) {
  25.             $seed->setCreatedAt(new \DateTime());
  26.  
  27.             /** @var UploadedFile $photoFile */
  28.             $photoFile = $form->get('photo')->getData();
  29.             if ($photoFile) {
  30.                 $photoFileName = $fileUploader->upload($photoFile);
  31.                 $seed->setPhotoFilename($photoFileName);
  32.             }
  33.             if ($photoFile) {
  34.                 $originalFilename = pathinfo($photoFile->getClientOriginalName(), PATHINFO_FILENAME);
  35.                 // this is needed to safely include the file name as part of the URL
  36.                 $safeFilename = $slugger->slug($originalFilename);
  37.                 $newFilename = $safeFilename . '-' . uniqid() . '.' . $photoFile->guessExtension();
  38.  
  39.                 try {
  40.                     $photoFile->move(
  41.                         $this->getParameter('photos_directory'),
  42.                         $newFilename
  43.                     );
  44.                 } catch (FileException $e) {
  45.                     // ... handle exception if something happens during file upload
  46.                 }
  47.  
  48.                 $seed->setPhotoFilename($newFilename);
  49.  
  50.  
  51.                 $seedRepository->save($seed);
  52.  
  53.                 $this->addFlash('success', 'message.created_successfully_seed');
  54.  
  55.                 return $this->redirectToRoute('index');
  56.             }
  57.         }