src/Controller/UserController.php line 50

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Form\UserType;
  5. use App\Repository\UserRepository;
  6. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. /**
  12.  * Class UserController
  13.  * @package App\Controller
  14.  *
  15.  * @Route("/user")
  16.  * @IsGranted("ROLE_ADMIN")
  17.  */
  18. class UserController extends AbstractController
  19. {
  20.     #[Route('/'name'app_user_index'methods: ['GET'])]
  21.     public function index(UserRepository $userRepository): Response
  22.     {
  23.         return $this->render('user/index.html.twig', [
  24.             'users' => $userRepository->findAll(),
  25.         ]);
  26.     }
  27.     #[Route('/new'name'app_user_new'methods: ['GET''POST'])]
  28.     public function new(Request $requestUserRepository $userRepository): Response
  29.     {
  30.         $user = new User();
  31.         $form $this->createForm(UserType::class, $user);
  32.         $form->handleRequest($request);
  33.         if ($form->isSubmitted() && $form->isValid()) {
  34.             $userRepository->add($user);
  35.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  36.         }
  37.         return $this->renderForm('user/new.html.twig', [
  38.             'user' => $user,
  39.             'form' => $form,
  40.         ]);
  41.     }
  42.     #[Route('/{id}'name'app_user_show'methods: ['GET'])]
  43.     public function show(User $user): Response
  44.     {
  45.         return $this->render('user/show.html.twig', [
  46.             'user' => $user,
  47.         ]);
  48.     }
  49.     #[Route('/{id}/edit'name'app_user_edit'methods: ['GET''POST'])]
  50.     public function edit(Request $requestUser $userUserRepository $userRepository): Response
  51.     {
  52.         $form $this->createForm(UserType::class, $user);
  53.         $form->handleRequest($request);
  54.         if ($form->isSubmitted() && $form->isValid()) {
  55.             $userRepository->add($user);
  56.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  57.         }
  58.         return $this->renderForm('user/edit.html.twig', [
  59.             'user' => $user,
  60.             'form' => $form,
  61.         ]);
  62.     }
  63.     #[Route('/{id}'name'app_user_delete'methods: ['POST'])]
  64.     public function delete(Request $requestUser $userUserRepository $userRepository): Response
  65.     {
  66.         if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {
  67.             $userRepository->remove($user);
  68.         }
  69.         return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  70.     }
  71. }