src/Controller/LetCommentController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Product;
  4. use App\Entity\Comments;
  5. use App\Form\CommentsType;
  6. use DateTimeImmutable;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  13. use Symfony\Component\String\Slugger\SluggerInterface;
  14. class LetCommentController extends AbstractController
  15. {
  16.     private $entityManager;
  17.     public function __construct(EntityManagerInterface $entityManager)
  18.     {
  19.         $this->entityManager $entityManager;
  20.     }
  21.     #[Route('/laissez-votre-commentaire'name'app_let_comment')]
  22.     public function index(Request $requestSluggerInterface $slugger): Response
  23.     {
  24.         $notification null;
  25.         $activity $this->entityManager->getRepository(Product::class)->findAll();
  26.         $comments = new Comments();
  27.         $form $this->createForm(CommentsType::class, $comments);
  28.         $form->handleRequest($request);
  29.         if ($form->isSubmitted() && $form->isValid()) {
  30.             $picture $form->get('illustration')->getData();
  31.             $originalFilename pathinfo($picture->getClientOriginalName(), PATHINFO_FILENAME);
  32.             $safeFilename $slugger->slug($originalFilename);
  33.             $newFilename $safeFilename '-' uniqid() . '.' $picture->guessExtension();
  34.             try {
  35.                 $picture->move(
  36.                     $this->getParameter('comments_directory'),
  37.                     $newFilename
  38.                 );
  39.             } catch (FileException $e) {
  40.             }
  41.             $comments->setIllustration($newFilename);
  42.             $comments $form->getData(); 
  43.             $comments->setCreatedAt(new DateTimeImmutable());
  44.             $this->entityManager->persist($comments);
  45.             $this->entityManager->flush();
  46.             $notification =  "Merci de votre retour d'expĂ©rience.
  47.             Avant publication je me dois de vĂ©rifier chaque commentaire pour validation ( afin de ne pas retrouver de propos offensant ou insultant sur mon site qui se veut familial et jovial ).";
  48.         }
  49.         return $this->render('let_comment/index.html.twig', [
  50.             'form' => $form->createView(),
  51.             'notification' => $notification,
  52.             'activity' => $activity
  53.         ]);
  54.     }
  55. }