<?php
namespace App\Controller\Admin;
use App\Entity\Realisation;
use App\Form\RealisationType;
use App\Repository\RealisationRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class AdminRealisationController extends AbstractController
{
/**
* @var EntityManagerInterface
*/
private $em;
public function __construct(RealisationRepository $realisationRepository, EntityManagerInterface $em)
{
$this->realisationRepository = $realisationRepository;
$this->em = $em;
}
#[Route('/admin/realisation', name: 'admin.realisation.index')]
public function index(RealisationRepository $realisationRepository)
{
$realisation = $realisationRepository->findAll('DESC');
return $this->render('admin/realisation/index.html.twig', [
'realisations' => $realisation,
]);
}
#[Route('/admin/realisation/new', name: 'admin.realisation.new')]
public function new(Request $request)
{
$realisation = new Realisation();
$form = $this->createForm(RealisationType::class, $realisation);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->em->persist($realisation);
$this->em->flush();
return $this->redirectToRoute('admin.realisation.index');
}
return $this->renderForm('admin/realisation/new.html.twig', [
'realisation' => $realisation,
'form' => $form,
]);
}
#[Route('/admin/realisation/edit/{id}', name: 'admin.realisation.edit', requirements:['id' => '\d+'])]
public function edit(Request $request, Realisation $realisation)
{
$form = $this->createForm(RealisationType::class, $realisation);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->em->flush();
return $this->redirectToRoute('admin.realisation.index');
}
return $this->render('admin/realisation/edit.html.twig', [
'realisation' => $realisation,
'form' => $form->createView()
]);
}
#[Route('/admin/realisation/delete/{id}', name: 'admin.realisation.delete', requirements:['id' => '\d+'])]
public function delete(Request $request, Realisation $realisation)
{
if ($this->isCsrfTokenValid('delete'.$realisation->getId(), $request->request->get('_token'))) {
$this->em->remove($realisation);
$this->em->flush();
$this->addFlash('success', 'Realisation supprimée avec succès');
}
return $this->redirectToRoute('admin.realisation.index');
}
}