-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathConferenceController.php
40 lines (35 loc) · 1.35 KB
/
ConferenceController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
namespace adamcameron\symfonythefasttrack\Controller;
use adamcameron\symfonythefasttrack\Entity\Conference;
use adamcameron\symfonythefasttrack\Repository\CommentRepository;
use adamcameron\symfonythefasttrack\Repository\ConferenceRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ConferenceController extends AbstractController
{
public function index(ConferenceRepository $conferenceRepository): Response
{
return $this->render(
"conference/index.html.twig",
["conferences" => $conferenceRepository->findAll()]
);
}
public function show(
Request $request,
Conference $conference,
CommentRepository $commentRepository
): Response {
$offset = max(0, $request->query->getInt('offset', 0));
$paginator = $commentRepository->getPaginator($conference, $offset);
return $this->render(
"conference/show.html.twig",
[
"conference" => $conference,
"comments" => $paginator,
'previous' => $offset - CommentRepository::PAGINATOR_PER_PAGE,
'next' => min(count($paginator), $offset + CommentRepository::PAGINATOR_PER_PAGE)
]
);
}
}