src/Controller/BlogController.php line 22
<?phpnamespace App\Controller;use App\Entity\Blog;use App\Form\BlogType;use App\Repository\BlogRepository;use Knp\Component\Pager\PaginatorInterface;use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;#[Route('/blog')]class BlogController extends AbstractController{public function top(BlogRepository $blogRepository): Response{return $this->render('blog/_top.html.twig', ['blogs' => $blogRepository->findTop(),]);}#[Security('is_granted("ROLE_WRITER")')]#[Route('/', name: 'app_blog_index', methods: ['GET'])]public function index(Request $request, PaginatorInterface $paginator, BlogRepository $blogRepository): Response{$parameters = [];if($request->query->all()) {$parameters = $request->query->all();}$pagination = $paginator->paginate($blogRepository->findQuery($parameters), /* query NOT result */$request->query->getInt('page', 1), /*page number*/20 /*limit per page*/);return $this->render('blog/index.html.twig', ['blogs' => $pagination,]);}#[Security('is_granted("ROLE_WRITER")')]#[Route('/new', name: 'app_blog_new', methods: ['GET', 'POST'])]public function new(Request $request, BlogRepository $blogRepository): Response{$blog = new Blog();$blog->setCreateAt(new \DateTime());$form = $this->createForm(BlogType::class, $blog);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$blogRepository->save($blog, true);return $this->redirectToRoute('app_blog_show', [ 'id'=> $blog->getId() ], Response::HTTP_SEE_OTHER);}return $this->renderForm('blog/new.html.twig', compact('blog', 'form'));}#[Security('is_granted("ROLE_WRITER")')]#[Route('/{id}', name: 'app_blog_show', methods: ['GET'])]public function show(Blog $blog): Response{return $this->render('blog/show.html.twig', compact('blog'));}#[Security('is_granted("ROLE_WRITER")')]#[Route('/{id}/edit', name: 'app_blog_edit', methods: ['GET', 'POST'])]public function edit(Request $request, Blog $blog, BlogRepository $blogRepository): Response{$form = $this->createForm(BlogType::class, $blog);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$blogRepository->save($blog, true);return $this->redirectToRoute('app_blog_show', [ 'id'=> $blog->getId() ], Response::HTTP_SEE_OTHER);}return $this->renderForm('blog/edit.html.twig', compact('blog', 'form'));}#[Security('is_granted("ROLE_WRITER")')]#[Route('/{id}', name: 'app_blog_delete', methods: ['POST'])]public function delete(Request $request, Blog $blog, BlogRepository $blogRepository): Response{if ($this->isCsrfTokenValid('delete'.$blog->getId(), $request->request->get('_token'))) {$blogRepository->remove($blog, true);}return $this->redirectToRoute('app_blog_index', [], Response::HTTP_SEE_OTHER);}}