src/Controller/ArticlesController.php line 79

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Articles;
  4. use App\Form\ArticlesType;
  5. use App\Repository\ArticlesRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  11. /**
  12.  * @Route("/articles")
  13.  * @Security("is_granted('ROLE_ADMIN')")
  14.  */
  15. class ArticlesController extends AbstractController
  16. {
  17.     /**
  18.      * @Route("/liste/{page}", name="app_articles_index", methods={"GET"})
  19.      */
  20.     public function index(ArticlesRepository $articlesRepository,$page): Response
  21.     {
  22.         return $this->render('articles/index.html.twig', [
  23.             'articles' => $articlesRepository->findBy(array('Pages'=>$page)),
  24.         ]);
  25.     }
  26.     /**
  27.      * @Route("/new", name="app_articles_new", methods={"GET", "POST"})
  28.      */
  29.     public function new(Request $requestArticlesRepository $articlesRepository): Response
  30.     {
  31.         $article = new Articles();
  32.         $form $this->createForm(ArticlesType::class, $article);
  33.         $form->handleRequest($request);
  34.         if ($form->isSubmitted() && $form->isValid()) {
  35.             $file $form->get('Image')->getData();
  36.             if($file != 'ok') {
  37.                 $path '/';
  38.                 $fileName uniqid().'-'.$file->getClientOriginalName();
  39.                 $file->move(
  40.                     $this->getParameter('uploads_directory').$path,
  41.                     $fileName
  42.                 );
  43.              
  44.                 $article->setImage($fileName);
  45.             }
  46.             $articlesRepository->add($articletrue);
  47.             return $this->redirectToRoute('app_articles_index', ['page'=>$article->getPages()->getId()], Response::HTTP_SEE_OTHER);
  48.         }
  49.         return $this->renderForm('articles/new.html.twig', [
  50.             'article' => $article,
  51.             'image'=>'',
  52.             'form' => $form,
  53.         ]);
  54.     }
  55.     /**
  56.      * @Route("/{id}", name="app_articles_show", methods={"GET"})
  57.      */
  58.     public function show(Articles $article): Response
  59.     {
  60.         return $this->render('articles/show.html.twig', [
  61.             'article' => $article,
  62.         ]);
  63.     }
  64.     /**
  65.      * @Route("/{id}/edit", name="app_articles_edit", methods={"GET", "POST"})
  66.      */
  67.     public function edit(Request $requestArticles $articleArticlesRepository $articlesRepository): Response
  68.     {
  69.         $oldImage $article->getImage();
  70.         $form $this->createForm(ArticlesType::class, $article);
  71.         $form->handleRequest($request);
  72.         if ($form->isSubmitted() && $form->isValid()) {
  73.             $file $form->get('Image')->getData();
  74.             if($file != 'ok') {
  75.                 $path '/';
  76.                 $fileName uniqid().'-'.$file->getClientOriginalName();
  77.                 $file->move(
  78.                     $this->getParameter('uploads_directory').$path,
  79.                     $fileName
  80.                 );
  81.              
  82.                 $article->setImage($fileName);
  83.             }
  84.             else
  85.             {
  86.                 $article->setImage($oldImage);
  87.             }
  88.             $articlesRepository->add($articletrue);
  89.             return $this->redirectToRoute('app_articles_index', ['page'=>$article->getPages()->getId()], Response::HTTP_SEE_OTHER);
  90.         }
  91.         return $this->renderForm('articles/edit.html.twig', [
  92.             'article' => $article,
  93.             'image'=>$article->getImage(),
  94.             'form' => $form,
  95.         ]);
  96.     }
  97.     /**
  98.      * @Route("/{id}", name="app_articles_delete", methods={"POST"})
  99.      */
  100.     public function delete(Request $requestArticles $articleArticlesRepository $articlesRepository): Response
  101.     {
  102.         if ($this->isCsrfTokenValid('delete'.$article->getId(), $request->request->get('_token'))) {
  103.             $page $article->getPages()->getId();
  104.             if($article->getImage() != 'ok')
  105.             {
  106.                 unlink("../public/uploads/".$article->getImage());
  107.             }
  108.             $articlesRepository->remove($articletrue);
  109.         }
  110.         return $this->redirectToRoute('app_articles_index', ['page'=>$page], Response::HTTP_SEE_OTHER);
  111.         
  112.     }
  113. }