src/Controller/Front/PromotionController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Controller\Core\BaseFrontController;
  4. use App\Entity\FormPromotion;
  5. use App\Form\Front\FormPromotionType;
  6. use App\Manager\FormPromotionManager;
  7. use App\Manager\PromotionManager;
  8. use App\Manager\PromotionsManager;
  9. use App\Service\Mail\PromotionMail;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  11. use Symfony\Component\HttpFoundation\RedirectResponse;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. class PromotionController extends BaseFrontController
  15. {
  16.     const FORM_PROMOTION 'sd_form_promotion_entity';
  17.     /**
  18.      * @Route("/promociones", name="promotions", methods={"GET"})
  19.      * @Template("front/promotions/promotions.html.twig")
  20.      */
  21.     public function promotions(PromotionsManager $promotionsManagerPromotionManager $promotionManager): array
  22.     {
  23.         $entity $this->getFormSession(self::FORM_PROMOTION, new FormPromotion());
  24.         $form $this->getFormView(FormPromotionType::class, $entity'promotions_action');
  25.         $this->locals['promotions'] = $promotionManager->current();
  26.         $this->locals['form'] = $form;
  27.         $this->locals['sd'] = $promotionsManager->find(1);
  28.         return $this->locals;
  29.     }
  30.     /**
  31.      * @Route("/promociones", name="promotions_action", methods={"POST"})
  32.      */
  33.     public function promotionsAction(Request $requestFormPromotionManager $managerPromotionMail $mail): RedirectResponse
  34.     {
  35.         $entity = new FormPromotion();
  36.         $form $this->getForm(FormPromotionType::class, $entity'promotions_action');
  37.         $form->handleRequest($request);
  38.         if ($form->isValid()) {
  39.             $manager->save($entity);
  40.             $mail->load($entity)->send();
  41.             return $this->redirectToRoute('thanks_slug', ['slug' => 'promocion']);
  42.         }
  43.         $this->saveFormSession(self::FORM_PROMOTION$entity);
  44.         return $this->redirectToRoute('promotions');
  45.     }
  46. }