src/Controller/IndexController.php line 41

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Trip;
  4. use App\Repository\BookingRepository;
  5. use App\Repository\SkiUserRepository;
  6. use App\Repository\TripRepository;
  7. use App\Repository\UserRepository;
  8. use App\Service\MailService;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use http\Client\Curl\User;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  13. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  14. use Symfony\Component\Form\Extension\Core\Type\TextType;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use Symfony\Component\Mailer\MailerInterface;
  18. use Symfony\Component\Routing\Annotation\Route;
  19. use SymfonyCasts\Bundle\VerifyEmail\VerifyEmailHelperInterface;
  20. class IndexController extends AbstractController
  21. {
  22.     /**
  23.      * @var EntityManagerInterface
  24.      */
  25.     private $entityManager;
  26.     /**
  27.      * ProductController constructor.
  28.      *
  29.      * @param EntityManagerInterface $entityManager
  30.      */
  31.     public function __construct(EntityManagerInterface $entityManager)
  32.     {
  33.         $this->entityManager $entityManager;
  34.     }
  35.     #[Route('/'name'index')]
  36.     public function index(TripRepository $tripRepositorySkiUserRepository $skiUserRepositoryBookingRepository $bookingRepositoryUserRepository $userRepository): Response
  37.     {
  38.         if ($this->isGranted('ROLE_ADMIN')) {
  39.             return $this->redirectToRoute('view_all_skiclubs');
  40.         }
  41.         $subUser $userRepository->findSubUserByExampleMainUser($this->getUser());
  42.         return $this->render('index/index.html.twig', [
  43.             'controller_name' => 'IndexController',
  44.             'user' => $this->getUser(),
  45.             'bookings' => $bookingRepository->findBookingByUser($this->getUser()),
  46.             'members' => $skiUserRepository->findAll(),
  47.             'trips' => $tripRepository->findAll(),
  48.             'time' => (new \DateTime()),
  49.             'month' => (new \DateTime())->format('m'),
  50.             'main_user' => $this->getUser(),
  51.             'subUsers' => $subUser
  52.         ]);
  53.     }
  54.     #[Route('/startseite'name'startseite')]
  55.     public function startseite(Request $requestVerifyEmailHelperInterface $helperMailerInterface $mailerEntityManagerInterface $entityManager): Response
  56.     {
  57.         $form $this->createFormBuilder()
  58.             ->add('skiclub'TextType::class, [
  59.                 'required' => false,
  60.                 'data_class' => null,
  61.             ])
  62.             ->add('verantwortlicher'TextType::class, [
  63.                 'required' => false,
  64.                 'data_class' => null,
  65.             ])
  66.             ->add('telefonnummer'NumberType::class, [
  67.                 'required' => false,
  68.                 'data_class' => null,
  69.             ])
  70.             ->add('email'TextType::class, [
  71.                 'required' => false,
  72.                 'data_class' => null,
  73.             ])
  74.             ->add('text'TextType::class, [
  75.                 'required' => false,
  76.             ])
  77.             ->add('Senden'SubmitType::class)
  78.             ->getForm();
  79.         $form->handleRequest($request);
  80.         if ($form->isSubmitted() && $form->isValid()) {
  81.             $offerRequest $form->getData();
  82.             $mailService = new MailService($helper$mailer$entityManager);
  83.             $mailService->offerRequest($offerRequest);
  84.             if ($mailService->offerRequest($offerRequest) == null) {
  85.                 $this->addFlash(
  86.                     'success',
  87.                     'Vielen Dank für Ihre Anfrage');
  88.             }
  89.         }
  90.         return $this->render('index/startseite.html.twig', [
  91.             'controller_name' => 'IndexController',
  92.             'form' => $form->createView(),
  93.         ]);
  94.     }
  95.     #[Route('/impressum'name'imprint')]
  96.     public function imprint(TripRepository $tripRepository,): Response
  97.     {
  98.         return $this->render('index/imprint.html.twig', [
  99.             'controller_name' => 'IndexController',
  100.         ]);
  101.     }
  102.     #[Route('/datenschutz'name'privacy')]
  103.     public function privacy(TripRepository $tripRepository,): Response
  104.     {
  105.         return $this->render('index/privacy.html.twig', [
  106.             'controller_name' => 'IndexController',
  107.         ]);
  108.     }
  109. }