src/Controller/Forum/ForumTopicController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Forum;
  3. use App\Entity\ForumPost;
  4. use App\Entity\ForumTopic;
  5. use App\Entity\ForumUser;
  6. use App\Entity\User;
  7. use App\Repository\ForumPostRepository;
  8. use Knp\Component\Pager\PaginatorInterface;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. /**
  14.  * @Route("/forum")
  15.  */
  16. class ForumTopicController extends AbstractController
  17. {
  18.     /**
  19.      * @Route("/{countryMin}/{slug}", name="app_forum_forum_topic_show")
  20.      *
  21.      */
  22.     public function show(
  23.         ForumPostRepository $forumPostRepository,
  24.         ForumTopic          $topic,
  25.         PaginatorInterface  $paginator,
  26.         Request             $request
  27.     ): Response
  28.     {
  29.         /** @var User $currentUser */
  30.         $currentUser $this->getUser();
  31.         /** @var ?ForumUser $currentForumUser */
  32.         $currentForumUser null;
  33.         if ($currentUser) {
  34.             $currentForumUser $currentUser->getForumUser();
  35.         }
  36.         $topicPosts $topic->getPostActives();
  37.         $knpPage $request->get('page'1);
  38.         $knpPerPage 30;
  39.         /** @var ForumPost[] $posts */
  40.         $posts $paginator->paginate(
  41.             $topicPosts,
  42.             $request->query->getInt('page'$knpPage),
  43.             $knpPerPage
  44.         );
  45.         return $this->render('forum/forum_topic/show.html.twig', [
  46.             'topic' => $topic,
  47.             'posts' => $posts,
  48.             'currentForumUser' => $currentForumUser,
  49.         ]);
  50.     }
  51. }