<?php
namespace App\Controller;
use App\Entity\Incident;
use App\Entity\Status;
use App\Form\IncidentType;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use DateTime;
class DefaultController extends AbstractController
{
public function index(Request $request): Response
{
return $this->redirectToRoute('admin');
}
public function formIncident(Request $request, ManagerRegistry $doctrine): Response
{
$incident = new Incident();
$form = $this->createForm(IncidentType::class, $incident);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$imageFile = $form['image']->getNormData();
if ($imageFile) {
$destination = $this->getParameter('kernel.project_dir') . '/public/uploads/incidents';
$imageFile->move(
$destination,
$form['image']->getData()
);
}
$entityManager = $doctrine->getManager();
$incident->setCreated(new DateTime());
$incident->setStatus($entityManager->getRepository(Status::class)->findOneBy(['id' => 1]));
$entityManager->persist($incident);
$entityManager->flush();
$this->addFlash('info', 'Incidencia Enviada');
return $this->redirectToRoute('formIncident');
}
return $this->renderForm('incidentForm.html.twig', [
'form' => $form,
]);
}
}