src/Controller/SearchEngineController.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\SearchEngine;
  4. use App\Form\SearchEngineType;
  5. use App\Repository\SearchEngineRepository;
  6. use App\Service\SearchEngineService;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class SearchEngineController extends AppController
  11. {
  12.     protected $searchEngineService;
  13.     protected $searchEngineRepository;
  14.     public function __construct(SearchEngineService $searchEngineServiceSearchEngineRepository $searchEngineRepository)
  15.     {
  16.         $this->searchEngineService $searchEngineService;
  17.         $this->searchEngineRepository $searchEngineRepository;
  18.     }
  19.     /**
  20.      * @Route({
  21.      *  "fr": "/fr/recherche/demande"
  22.      * }, name="search_engine")
  23.      */
  24.     public function index(Request $request): Response
  25.     {
  26.         // $this->searchEngineService->initializeDatabase();
  27.         $query null;
  28.         $params = [];
  29.         $form $this->createForm(SearchEngineType::class);
  30.         $form->handleRequest($request);
  31.         if ($form->isSubmitted() && $form->isValid()) {
  32.             $query $params['content'] = $form->getData()['query'];
  33.         }
  34.         $limit  26;
  35.         $page   $request->query->getInt("page"1);
  36.         $total $this->searchEngineRepository->getCount($params);
  37.         $items $this->searchEngineRepository->getPaginated($page$limit$params);
  38.         $formView $form->createView();
  39.         return $this->render('search_engine/index.html.twig', [
  40.             'items'                 => $items,
  41.             'page'                  => $page,
  42.             'limit'                 => $limit,
  43.             'total'                 => $total,
  44.             'totalPages'            => ceil($total $limit),
  45.             'searchEngineForm'      => $formView,
  46.             'query'                 => $query
  47.         ]);
  48.     }
  49.     /**
  50.      * @Route("/admin/search-engine/init", name="search_engine_admin_init")
  51.      */
  52.     public function adminInit()
  53.     {
  54.         $this->searchEngineService->initializeDatabase();
  55.         return $this->render('search_engine/adminInit.html.twig', [
  56.             'controllerName' => 'SearchEngine',
  57.             'controllerAction' => 'adminInit'
  58.         ]);
  59.     }
  60. }