src/Controller/AppController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\ArticleRepository;
  4. use App\Repository\BrandRepository;
  5. use App\Repository\CategoryRepository;
  6. use App\Repository\CityRepository;
  7. use App\Repository\SectionRepository;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class AppController extends AbstractController
  13. {
  14.     private $categoryRepository;
  15.     private $sectionRepository;
  16.     private $cityRepository;
  17.     private $brandRepository;
  18.     public function __construct(SectionRepository $sectionRepositoryCategoryRepository $categoryRepositoryCityRepository $cityRepositoryBrandRepository $brandRepository)
  19.     {
  20.         $this->categoryRepository $categoryRepository;
  21.         $this->sectionRepository $sectionRepository;
  22.         $this->cityRepository $cityRepository;
  23.         $this->brandRepository $brandRepository;
  24.     }
  25.     /**
  26.      * @Route("/", name="app_app")
  27.      */
  28.     public function index(Request $requestArticleRepository $articleRepository): Response
  29.     {
  30.         $newOffers $articleRepository->findBy(['is_offer' => true], ['id' => 'desc'],8);
  31.         $newRequests $articleRepository->findBy(['is_offer' => false], ['id' => 'desc'], 8);
  32.         return $this->renderWithParams('app/index.html.twig', [
  33.             'newOffers' => $newOffers,
  34.             'newRequests' => $newRequests,
  35.         ]);
  36.     }
  37.     public function renderWithParams(string $template, array $params){
  38.         $categories $this->categoryRepository->findAll();
  39.         $sections $this->sectionRepository->findAll();
  40.         $cities $this->cityRepository->getSortedCities();
  41.         $user $this->getUser();
  42.         $brands $this->brandRepository->findAll();
  43.         $parameters array_merge($params, [
  44.             'controller_name' => 'AppController',
  45.             'user' => $user,
  46.             'sections' => $sections,
  47.             'categories' => $categories,
  48.             'cities' => $cities,
  49.             'brands' => $brands
  50.         ] );
  51.         return $this->render($template$parameters);
  52.     }
  53.     /**
  54.      * @Route("/change-locale/{locale}", name="change_locale")
  55.      */
  56.     public function changeLocale($localeRequest $request){
  57.         // On stocke la langue dans la session
  58.         $request->getSession()->set('_locale'$locale);
  59.         $request->setLocale($locale);
  60.         // On revient sur la page précédente
  61.         return $this->redirect($request->headers->get('referer'));
  62.     }
  63. }