src/Controller/HomeController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Image;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use App\Entity\TextFr;
  10. use App\Entity\TextEs;
  11. use App\Entity\TextPt;
  12. class HomeController extends AbstractController
  13. {
  14.     #[Route('/')]
  15.     public function indexNoLocale(): Response
  16.     {
  17.         return $this->redirectToRoute('home', ['_locale' => 'fr']);
  18.     }
  19.     #[Route('/{_locale<%app.supported_locales%>}/'name'home')]
  20.     public function index(Request $requestEntityManagerInterface $entityManager): Response
  21.     {
  22.         $local $request->getLocale(); // get la locale
  23.         $datasImages $entityManager->getRepository(Image::class)->findBy(['page' => 'accueil']);
  24.         $images = [];
  25.         foreach ($datasImages as $img) {
  26.             $images[$img->getName()] = $img;
  27.         }
  28.         switch ($local) {
  29.             case "fr":
  30.                 $datas $entityManager->getRepository(TextFr::class)->findBy(['page' => 'accueil']);
  31.                 break;
  32.             case "es":
  33.                 $datas $entityManager->getRepository(TextEs::class)->findBy(['page' => 'accueil']);
  34.                 break;
  35.             case "pt":
  36.                 $datas $entityManager->getRepository(TextPt::class)->findBy(['page' => 'accueil']);
  37.                 break;
  38.             default:
  39.                 $datas null;
  40.                 break;
  41.         }
  42.         $texts = [];
  43.         foreach ($datas as $text) {
  44.             $texts[$text->getName()] = $text;
  45.         }
  46.         return $this->render('accueil/' $local '/index.html.twig', [
  47.             'texts' => $texts,
  48.             'images' => $images
  49.         ]);
  50.     }
  51. }