src/Controller/UserController.php line 41
<?phpnamespace App\Controller;use App\Entity\User;use App\Form\UserType;use App\Repository\UserRepository;use App\Repository\UserProjetsRepository;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\String\Slugger\SluggerInterface;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\File\Exception\FileException;#[Route('/users')]class UserController extends AbstractController{#[Route('/new', name: 'app_user_new', methods: ['GET', 'POST'])]public function new(Request $request, UserRepository $userRepository): Response{$user = new User();$form = $this->createForm(UserType::class, $user);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$userRepository->save($user, true);return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);}return $this->renderForm('user/new.html.twig', ['user' => $user,'form' => $form,]);}#[Route('/{id}', name: 'app_user_show', methods: ['GET'])]public function show(User $user, UserProjetsRepository $userProjetsRepository): Response{return $this->render('user/show.html.twig', ['user' => $user,'projects' => $user->getUserProjets()->getValues(),'comments' => $user->getCommentaires()->getValues(),]);}#[Route('/{id}/edit', name: 'app_user_edit', methods: ['GET', 'POST'])]public function edit(Request $request, User $user, UserRepository $userRepository, SluggerInterface $slugger): Response{if ($user->getId() !== $this->getUser()->getId() && !$this->isGranted('ROLE_ADMIN')) {throw $this->createAccessDeniedException('Vous n\'avez pas le droit de modifier cet utilisateur');}$form = $this->createForm(UserType::class, $user, ['isAdmin' => $this->isGranted('ROLE_ADMIN') ? true : false,]);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {// dd($form->get('image')->getData());$imageFile = $form->get('image')->getData();if ($imageFile) {$originalFilename = pathinfo($imageFile->getClientOriginalName(), PATHINFO_FILENAME);$safeFilename = $slugger->slug($originalFilename);$newFilename = $safeFilename . '-' . uniqid() . '.' . $imageFile->guessExtension();try {$imageFile->move($this->getParameter('images_directory'), // définir ce paramètre dans votre fichier de configuration services.yaml$newFilename);} catch (FileException $e) {// gérer l'exception si quelque chose se passe mal pendant l'upload du fichier}$user->getUserInfos()->setImage($newFilename);}$userRepository->save($user, true);return $this->redirectToRoute('app_user_show', ['id' => $user->getId()], Response::HTTP_SEE_OTHER);}return $this->render('user/edit.html.twig', ['user' => $user,'form' => $form,]);}#[Route('/{id}', name: 'app_user_delete', methods: ['POST'])]public function delete(Request $request, User $user, UserRepository $userRepository): Response{if ($this->isCsrfTokenValid('delete' . $user->getId(), $request->request->get('_token'))) {$userRepository->remove($user, true);}return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);}}