src/Controller/Dashboard/Admin/CoachController.php line 70

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace App\Controller\Dashboard\Admin;
  11. use App\Entity\Category;
  12. use App\Entity\Experience;
  13. use App\Entity\User;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use Doctrine\Persistence\ManagerRegistry;
  16. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  20. use Symfony\Component\Routing\Annotation\Route;
  21. /**
  22.  * Controller used to manage current user.
  23.  *
  24.  * @author Romain Monteil <monteil.romain@gmail.com>
  25.  */
  26. #[Route('/coach')]
  27. class CoachController extends AbstractController {
  28.     #[Route('/add-account'methods: ['GET''POST'], name'add_coach')]
  29.     public function addAccountByAdmin(Request $requestManagerRegistry $doctrineUserPasswordHasherInterface $passwordHasher): Response {
  30. //        $user = $this->getUser();
  31.         $em $doctrine->getManager();
  32.         $categories $em->getRepository(Category::class)->findAll();
  33.         if ($request->isMethod('post')) {
  34.             $coach = new User();
  35.             $coach->setFirstname($request->get('firstname'));
  36.             $coach->setLastname($request->get('lastname'));
  37.             $coach->setBio($request->get('bio'));
  38.             $coach->setPhone($request->get('phone'));
  39.             $coach->setEmail($request->get('email'));
  40.             $coach->setUsername($request->get('email'));
  41.             $coach->setAddress($request->get('address'));
  42.             $coach->setCountry($request->get('country'));
  43.             $coach->setRoles(['ROLE_USER''ROLE_COACH']);
  44.             $coach->setPublished(1);
  45.             $coach->setPassword($passwordHasher->hashPassword($coach'123456789'));
  46.             $em->persist($coach);
  47.             $em->flush();
  48.             if ($request->files->get('image')) {
  49.                 $file $request->files->get('image');
  50.                 $coach->setImage("uploads/coaches/coach-" $coach->getId() . "/" $file->getClientOriginalName());
  51.                 $file->move("uploads/coaches/coach-" $coach->getId() . "/"$file->getClientOriginalName());
  52.             }
  53.             $em->persist($coach);
  54.             $em->flush();
  55.             $this->addFlash('success''Coach created successfully');
  56.             return $this->redirectToRoute('coaches_list');
  57.         }
  58.         return $this->render('admin/coach/addCoach.html.twig', [
  59.                     'categories' => $categories,
  60.         ]);
  61.     }
  62.     #[Route('/edit-account-{id}'methods: ['GET''POST'], name'edit_coach')]
  63.     public function editAccountByAdmin(Request $request$idManagerRegistry $doctrine) {
  64. //        $user = $this->getUser();
  65.         $em $doctrine->getManager();
  66.         $coach $em->getRepository(User::class)->find($id);
  67.         $categories $em->getRepository(Category::class)->findAll();
  68.         if ($request->isMethod('post')) {
  69.             $coach->setFirstname($request->get('firstname'));
  70.             $coach->setLastname($request->get('lastname'));
  71.             $coach->setBio($request->get('bio'));
  72.             $coach->setPhone($request->get('phone'));
  73.             $coach->setGender($request->get('gender'));
  74. //            $coach->setEmail($request->get('email'));
  75. //            $coach->setUsername($request->get('email'));
  76.             $coach->setAddress($request->get('address'));
  77.             $coach->setCountry($request->get('country'));
  78.             $coach->setPublished(1);
  79. //            $coach->setPassword($passwordHasher->hashPassword($coach, '123456789'));
  80.             if ($request->files->get('image')) {
  81.                 $file $request->files->get('image');
  82.                 $coach->setImage("uploads/coaches/coach-" $coach->getId() . "/" $file->getClientOriginalName());
  83.                 $file->move("uploads/coaches/coach-" $coach->getId() . "/"$file->getClientOriginalName());
  84.             }
  85.             $em->persist($coach);
  86.             $em->flush();
  87.             $this->addFlash('success''Coach edited successfully');
  88.             return $this->redirectToRoute('coaches_list');
  89.         }
  90.         return $this->render('coach/account/editCoach.html.twig', [
  91.                     'categories' => $categories,
  92.                     'coach' => $coach,
  93.         ]);
  94.     }
  95.     #[Route('/coaches-list'methods: ['GET'], name'coaches_list')]
  96.     public function listCoaches(Request $requestManagerRegistry $doctrine) {
  97.         $em $doctrine->getManager();
  98.         $coaches $em->getRepository(User::class)->findAll();
  99.         return $this->render('admin/coach/listCoaches.html.twig', [
  100.                     'coaches' => $coaches,
  101.         ]);
  102.     }
  103. }