<?php
namespace AppBundle\Controller;
use AppBundle\Form\LocaleType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
class LocalizationController extends Controller
{
/**
* @Route("/locale", name="app_locale")
* @Template("_locale.html.twig")
*
* @param Request $request
*
* @return array|RedirectResponse
*/
public function locale(Request $request)
{
$form = $this->createForm(LocaleType::class, null, [
'action' => $this->generateUrl('app_locale'),
'method' => 'POST',
]);
$form->get('locale')->setData($request->getLocale());
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
if ($user = $this->getUser()) {
$user->setLocale($data['locale']);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($user);
$entityManager->flush();
}
return $this->redirectToRoute('app_home_page', [
'_locale' => $data['locale'],
]);
}
// dd($form);
return [
'form' => $form->createView(),
];
}
}