src/Controller/DefaultController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Features\Core\Paginator;
  4. use App\Features\Jobs\Form\JobFilterSimpleType;
  5. use App\Features\Jobs\Form\JobFilterType;
  6. use App\Features\Jobs\JobFilter;
  7. use App\Repository\JobsRepository;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. class DefaultController extends AbstractController
  14. {
  15.     /**
  16.      * @Route("/", name="home")
  17.      * @return Response
  18.      */
  19.     public function index(JobsRepository $repository)
  20.     {
  21.         $filter= new JobFilter(isEnabledtrue);
  22.         $qb$repository->filter($filter);
  23.         $paginator= new Paginator($qb20);
  24.         $paginator->paginate();
  25.         return $this->render(
  26.             'home.html.twig', [
  27.                 'paginator' => $paginator,
  28.                 'form' => $this->createForm(JobFilterSimpleType::class)->createView()
  29.             ]
  30.         );
  31.     }
  32.     /**
  33.      * @Route("/recherche-offres", name="job-search")
  34.      * @param Request $request
  35.      * @param JobsRepository $repository
  36.      * @return Response
  37.      */
  38.     public function searchJob(Request $requestJobsRepository $repository): Response
  39.     {
  40.         $filter= new JobFilter(isEnabledtrue);
  41.         $form $this->createForm(JobFilterType::class, $filter);
  42.         $form->handleRequest($request);
  43.         $form->isSubmitted() && $form->isValid();
  44.         $qb$repository->filter($filter);
  45.         $paginator= new Paginator($qb20);
  46.         $paginator->paginate();
  47.         return $this->render(
  48.             'Jobs/search-job-page.html.twig', [
  49.                 'paginator' => $paginator,
  50.                 'form' => $form->createView(),
  51.                 'filter' => "Recherche d'offres"
  52.             ]
  53.         );
  54.     }
  55.     /**
  56.      * @Route("/a-propos", name="about")
  57.      * @return Response
  58.      */
  59.     public function about()
  60.     {
  61.         return $this->render('about.html.twig', ["title" => "À propos"]);
  62.     }
  63.     /**
  64.      * @Route("/sitemap.xml", name="sitemap", defaults={"xml"=true, "_format"="xml"})
  65.      */
  66.     public function menu($activeMenu null$isFooter false$xml false): Response
  67.     {
  68.         return $this->render($xml 'Default/sitemap.xml.twig' : ($isFooter 'Default/footer.html.twig' 'Default/menu.html.twig'),[
  69.             'activeMenu'=>$activeMenu,
  70.         ]);
  71.     }
  72. }