src/Controller/Web/User/UserController.php line 17

  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller\Web\User;
  4. use App\Controller\Web\AbstractAppController;
  5. use App\Form\User\UserForm;
  6. use App\Service\User\UserProfileService;
  7. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. #[IsGranted('ROLE_USER')]
  12. #[Route('/{id}''user-view')]
  13. final class UserController extends AbstractAppController
  14. {
  15.     public function __invoke(Request $requestUserProfileService $userProfileService): Response
  16.     {
  17.         $form $this->createForm(UserForm::class, $this->getUser(), [
  18.             'validation_groups' => ['update'],
  19.             'create' => false
  20.         ]);
  21.         $form->handleRequest($request);
  22.         if ($form->isSubmitted() && $form->isValid()) {
  23.             $userProfileService->updateMainProfile($form->getData());
  24.             $this->sendSavedMessage();
  25.             return $this->redirectToRoute('dashboard');
  26.         }
  27.         return $this->render('dashboard/users/profile.html.twig', [
  28.             'form' => $form->createView()
  29.         ]);
  30.     }
  31. }