<?php
namespace App\Controller;
use App\Entity\User;
use App\Form\UserType;
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 UserController extends AbstractController
{
public function index(Request $request, EntityManagerInterface $entityManager): Response
{
$users = $entityManager->getRepository(User::class)->findAll();
return $this->render('user/index.html.twig', [
'controller_name' => 'UserController',
'users' => $users
]);
}
public function create(Request $request, EntityManagerInterface $entityManager): Response
{
$user = new User();
$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager->persist($user);
$entityManager->flush();
return $this->redirectToRoute('user_list');
}
return $this->render('user/create.html.twig', [
'form' => $form->createView(),
'title' => 'Créer un utilisateur'
]);
}
public function edit(Request $request, EntityManagerInterface $entityManager, $id): Response
{
$user = $entityManager->getRepository(User::class)->findOneBy(['id' => $id]);
$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager->flush();
return $this->redirectToRoute('user_list');
}
return $this->render('user/create.html.twig', [
'form' => $form->createView(),
'title' => 'Modifier l\'utilisateur'
]);
}
public function delete($id, EntityManagerInterface $entityManager): Response
{
$user = $entityManager->getRepository(User::class)->findOneBy(['id' => $id]);
$entityManager->remove($user);
$entityManager->flush();
return $this->redirectToRoute('user_list');
}
}