You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
859 B
30 lines
859 B
<?php
|
|
|
|
namespace App\Controller;
|
|
|
|
use App\Repository\PostRepository;
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\Routing\Attribute\Route;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
|
|
class PostController extends AbstractController
|
|
{
|
|
private const POSTS_PER_PAGE = 10;
|
|
|
|
#[Route('/', name: 'app_posts')]
|
|
public function index(PostRepository $repository, Request $request): Response
|
|
{
|
|
$page = $request->query->getInt('page', 1);
|
|
$posts = $repository->findPaginatedPosts($page, self::POSTS_PER_PAGE);
|
|
$maxPage = ceil($posts->count() / self::POSTS_PER_PAGE);
|
|
return $this->render('post/index.html.twig', [
|
|
'posts' => $posts,
|
|
'maxPage' => $maxPage,
|
|
'page' => $page,
|
|
]);
|
|
}
|
|
}
|
|
|
|
|