ParcBundle/Controller/RetirageController.php line 22

Open in your IDE?
  1. <?php
  2. namespace ParcBundle\Controller;
  3. use App\Entity\Retirage;
  4. use App\Entity\Images;
  5. use ParcBundle\Form\RetirageType;
  6. use App\Service\MailTransport;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  12. use Symfony\Component\Mime\Email;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use Symfony\Component\Mailer\MailerInterface;
  15. class RetirageController extends AbstractController
  16. {
  17.     #[Route('/retirage'name'parc_retirage_index')]
  18.     public function index(EntityManagerInterface $entityManagerRequest $requestMailTransport $mailTransport)
  19.     {
  20.         $retirage = new Retirage();
  21.         $retirage->setCreationDate(new \DateTime());
  22.         $form $this->createForm(RetirageType::class, $retirage);
  23.         $form->handleRequest($request);
  24.         if ($form->isSubmitted() && $form->isValid()) {
  25.             $numberPhotos '';
  26.             $numberMagnets '';
  27.             $numberKeyChains '';
  28.             // On récupère les images transmises
  29.             $images $form->get('images')->getData();
  30.             if (!empty($form->get('numberPhoto')->getData())) {
  31.                 $numberPhotos $form->get('numberPhoto')->getData();
  32.             }
  33.     
  34.             if (!empty($form->get('numberMagnet')->getData())) {
  35.                 $numberMagnets $form->get('numberMagnet')->getData();
  36.             }
  37.     
  38.             if (!empty($form->get('numberKeyChain')->getData())) {
  39.                 $numberKeyChains $form->get('numberKeyChain')->getData();
  40.             }
  41.             
  42.             // On boucle sur les images
  43.             foreach ($images as $key => $image) {
  44.                 // On génère un nouveau nom de fichier
  45.                 $fichier md5(uniqid()) . '.' $image->guessExtension();
  46.                 // On copie le fichier dans le dossier uploads
  47.                 $image->move(
  48.                     $this->getParameter('images_upload'),
  49.                     $fichier
  50.                 );
  51.                 // On crée l'image dans la base de données
  52.                 $img = new Images();
  53.                 $img->setName($fichier);
  54.                 $img->setNumberPhoto($numberPhotos[$key]);
  55.                 $img->setNumberMagnet($numberMagnets[$key]);
  56.                 $img->setNumberKeyChain($numberKeyChains[$key]);
  57.                 $retirage->addImage($img);
  58.             }
  59.             $entityManager->persist($retirage);
  60.             $entityManager->flush();
  61.             $name $retirage->getName();
  62.             $firstname $retirage->getFirstname();
  63.             $mail $retirage->getMail();
  64.             $phone $retirage->getPhone();
  65.             $contactFormData $form->getData();
  66.             $from "Retirage UBPhotographies";
  67.             $to "ub.photographies@gmail.com, alexandre.urbaniak@ubphotographies.com";
  68.             $subject 'Retirage ubphotographies';
  69.           
  70.             $message "Bonjour,
  71.             \r\nVous avez une nouvelle demande de retirage :
  72.             \r\n- $name $firstname\r\n- $mail\r\n- $phone
  73.             \r\nRendez-vous sur votre espace UBPhotographies pour traiter la demande.";
  74.             $mail $mailTransport->send($from$to$subject$message);
  75.             if ($mail == true) {
  76.                 $this->addFlash('success''Votre demande de retirage a bien été envoyée');
  77.             } else {
  78.                 $this->addFlash('error'"Votre demande de retirage n'a pas pu être envoyée, veuillez réessayer.");
  79.             }
  80.             return $this->redirectToRoute('parc_retirage_index');
  81.         }
  82.         return $this->render('@parcbundle/parcbundle/retirage/index.html.twig', [
  83.             'retirage_form' => $form->createView(),
  84.             'step' => $step '1'
  85.         ]);
  86.     }
  87. }