src/Controller/BlogController.php line 66

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Blog;
  4. use App\Form\BlogType;
  5. use App\Repository\BlogRepository;
  6. use App\Repository\SectionTitleRepository;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Twig\Environment;
  13. //use Symfony\Component\HttpFoundation\Request;
  14. /**
  15.  * @Route("/blog")
  16.  */
  17. class BlogController extends AbstractController {
  18.     /**
  19.      * @Route("/", name="app_blog_index", methods={"GET"})
  20.      */
  21.     public function index(BlogRepository $blogRepository, SectionTitleRepository $sectionRepo, Request $request, Environment $twig): Response {
  22. //        $offset = max(0, $request->query->getInt('offset', 0));
  23. //        $paginator = $blogRepository->getBlogPaginator($blog, $offset);
  24.         $blogIndex = $sectionRepo->findTitleByTag('blog_index');
  25.         return $this->render('blog/index.html.twig', [
  26.                     'blogs' => $blogRepository->findAll(),
  27.                     'blogTitle' => $blogIndex,
  28. //                    'blogpage' => $paginator,
  29. //                    'previous' => $offset - BlogRepository::PAGINATOR_PER_PAGE,
  30. //                    'next' => min(count($paginator), $offset + BlogRepository::PAGINATOR_PER_PAGE),
  31.         ]);
  32.     }
  33. //
  34. //    /**
  35. //     * @Route("/new", name="app_blog_new", methods={"GET", "POST"})
  36. //     */
  37. //    public function new(Request $request, BlogRepository $blogRepository): Response
  38. //    {
  39. //        $blog = new Blog();
  40. //        $form = $this->createForm(BlogType::class, $blog);
  41. //        $form->handleRequest($request);
  42. //
  43. //        if ($form->isSubmitted() && $form->isValid()) {
  44. //            $blogRepository->add($blog);
  45. //            return $this->redirectToRoute('app_blog_index', [], Response::HTTP_SEE_OTHER);
  46. //        }
  47. //
  48. //        return $this->renderForm('blog/new.html.twig', [
  49. //            'blog' => $blog,
  50. //            'form' => $form,
  51. //        ]);
  52. //    }
  53.     /**
  54.      * @Route("/{id}-{slug}", name="app_blog_show", methods={"GET"})
  55.      */
  56.     public function show(Blog $blog, BlogRepository $blogRepo, $id, $slug = null): Response {
  57.         $article = $blogRepo->find($id);
  58.         if (!$article) {
  59.             throw new NotFoundHttpException();
  60.         }
  61.         if ($article->getSlug() !== $slug) {
  62.             return $this->redirectToRoute('app_blog_show', [
  63.                         'id' => $id,
  64.                         'slug' => $article->getSlug(),
  65.             ]);
  66.         }
  67.         return $this->render('blog/show.html.twig', [
  68.                     'blog' => $blog,
  69.         ]);
  70.     }
  71.     /**
  72.      * @Route("/{id}/edit", name="app_blog_edit", methods={"GET", "POST"})
  73.      */
  74.     public function edit(Request $request, Blog $blog, BlogRepository $blogRepository): Response {
  75.         $form = $this->createForm(BlogType::class, $blog);
  76.         $form->handleRequest($request);
  77.         if ($form->isSubmitted() && $form->isValid()) {
  78.             $blogRepository->add($blog);
  79.             return $this->redirectToRoute('app_blog_index', [], Response::HTTP_SEE_OTHER);
  80.         }
  81.         return $this->renderForm('blog/edit.html.twig', [
  82.                     'blog' => $blog,
  83.                     'form' => $form,
  84.         ]);
  85.     }
  86.     /**
  87.      * @Route("/{id}", name="app_blog_delete", methods={"POST"})
  88.      */
  89.     public function delete(Request $request, Blog $blog, BlogRepository $blogRepository): Response {
  90.         if ($this->isCsrfTokenValid('delete' . $blog->getId(), $request->request->get('_token'))) {
  91.             $blogRepository->remove($blog);
  92.         }
  93.         return $this->redirectToRoute('app_blog_index', [], Response::HTTP_SEE_OTHER);
  94.     }
  95. }