src/Controller/DefaultController.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Incident;
  4. use App\Entity\Status;
  5. use App\Form\IncidentType;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use DateTime;
  11. class DefaultController extends AbstractController
  12. {
  13.     public function index(Request $request): Response
  14.     {
  15.         return $this->redirectToRoute('admin');
  16.     }
  17.     public function formIncident(Request $requestManagerRegistry $doctrine): Response
  18.     {
  19.         $incident = new Incident();
  20.         $form $this->createForm(IncidentType::class, $incident);
  21.         $form->handleRequest($request);
  22.         if ($form->isSubmitted() && $form->isValid()) {
  23.             $imageFile $form['image']->getNormData();
  24.             if ($imageFile) {
  25.                 $destination $this->getParameter('kernel.project_dir') . '/public/uploads/incidents';
  26.                 $imageFile->move(
  27.                     $destination,
  28.                     $form['image']->getData()
  29.                 );
  30.             }
  31.             $entityManager $doctrine->getManager();
  32.             $incident->setCreated(new DateTime());
  33.             $incident->setStatus($entityManager->getRepository(Status::class)->findOneBy(['id' => 1]));
  34.             $entityManager->persist($incident);
  35.             $entityManager->flush();
  36.             $this->addFlash('info''Incidencia Enviada');
  37.             return $this->redirectToRoute('formIncident');
  38.         }
  39.         return $this->renderForm('incidentForm.html.twig', [
  40.             'form' => $form,
  41.         ]);
  42.     }
  43. }