src/Controller/LocaleController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. class LocaleController extends AbstractController
  8. {
  9.     /**
  10.      * @Route("/change-locale/{locale}", name="change_locale")
  11.      */
  12.     public function changeLocale($localeRequest $request): Response
  13.     {
  14.         // on stock la langue demandée dans la SESSION
  15.         $request->getSession()->set('_locale'$locale);
  16.         $baseURL $request->getSchemeAndHttpHost().$request->getBaseUrl();
  17.         $currentLoc $request->getLocale();
  18.         $referer $request->headers->get('referer');
  19.         if ($referer == $baseURL) {
  20.             $localeToEdit '/'.$currentLoc;
  21.         }else{
  22.             $localeToEdit '/'.$currentLoc.'/';
  23.         }  
  24.         $refererLocale str_replace($localeToEdit'/'.$locale.'/'$referer);
  25.         return $this->redirect($refererLocale);
  26.     }
  27. }