src/Controller/Front/FaqController.php line 20

Open in your IDE?
  1. <?php 
  2. namespace App\Controller\Front;
  3. use App\Entity\FaqRequest;
  4. use App\Form\FaqRequestType;
  5. use App\Repository\FaqRepository;
  6. use App\EmailNotification\ToAdmin;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. #[Route(path'/{_locale}')]
  14. class FaqController extends AbstractController
  15. {
  16.     #[Route(path'/faq'name'faq_show')]
  17.     public function index(FaqRepository $faqRepositoryRequest $requestToAdmin $toAdminTranslatorInterface $translatorEntityManagerInterface $em)
  18.     {
  19.         $locale = ($request->getLocale() ? $request->getLocale() : 'en');
  20.         $faqs $faqRepository->findByLocale($locale);
  21.         $faqRequest = new FaqRequest();
  22.         $form $this->createForm(FaqRequestType::class, $faqRequest);
  23.         $form->handleRequest($request);
  24.         if ($form->isSubmitted() && $form->isValid()) {
  25.             $homepageUrl $this->generateUrl('homepage', [], UrlGeneratorInterface::ABSOLUTE_URL);
  26.             if (substr($homepageUrl, -1) == '/') {
  27.                 $homepageUrl substr($homepageUrl0, -1);
  28.             }
  29.             if ($request->server->get('HTTP_ORIGIN') != null  && $request->server->get('HTTP_ORIGIN'). '/'$locale == $homepageUrl) {
  30.                 $faqRequest->setStatus('new')
  31.                            ->setCreatedAt(new \DateTime('now'));
  32.                 $em->persist($faqRequest);
  33.                 $em->flush();
  34.                 $toAdmin->newQuestionFaq($faqRequest);
  35.     
  36.                 $this->addFlash('success'$translator->trans('flashes.faq_controller.ask_question'));
  37.     
  38.                 return $this->redirectToRoute('faq_show');
  39.             }
  40.             else {
  41.                 return $this->redirectToRoute('faq_show');
  42.             }
  43.         }
  44.         return $this->render('front/faq/index.html.twig', [
  45.             'faqs' => $faqs,
  46.             'form' => $form->createView(),
  47.         ]);
  48.     }
  49. }