src/Controller/Website/ShowHomeController.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Website;
  3. use App\Controller\AbstractController;
  4. use App\Criteria\DemandCommentCriteria;
  5. use App\Criteria\NewsCriteria;
  6. use App\Repository\DemandRepository;
  7. use App\Repository\NewsRepository;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class ShowHomeController extends AbstractController
  11. {
  12. public function __construct(
  13. private string $repartitionDemandsMapPath
  14. ) {
  15. }
  16. #[Route(name: 'home')]
  17. public function __invoke(NewsCriteria $newsCriteria, NewsRepository $newsRepository, DemandRepository $demandRepository): Response
  18. {
  19. $newsCriteria->limit = 3;
  20. $newsRepository->buildCriteriaQuery($newsCriteria);
  21. $news = $newsRepository->getResult();
  22. $demandCommentCriteria = new DemandCommentCriteria();
  23. $demandRepository
  24. ->getDemandWithUserFeedback($demandCommentCriteria)
  25. ->getQueryBuilder()
  26. ;
  27. $publishedDemands = $demandRepository->getResult();
  28. $demands = $demandRepository->findAll();
  29. return $this->render('home.html.twig', [
  30. 'news' => $news,
  31. 'published_demands' => $publishedDemands,
  32. 'demands' => $demands,
  33. 'repartition_demands_map_path' => $this->repartitionDemandsMapPath,
  34. ]);
  35. }
  36. }