UserController.php 1.74 KB
Newer Older
Julien Jorry committed
1 2 3 4 5
<?php

namespace App\Controller;

use App\Entity\User;
6
use App\Form\Type\UserInfosFormType;
Julien Jorry committed
7 8 9 10 11 12
use Doctrine\ORM\EntityManagerInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
13
use Symfony\Component\Translation\TranslatorInterface;
Julien Jorry committed
14 15 16 17

class UserController extends AbstractController
{
    private $em;
18
    private $translator;
Julien Jorry committed
19

20
    public function __construct(EntityManagerInterface $em, TranslatorInterface $translator)
Julien Jorry committed
21 22
    {
        $this->em = $em;
23
        $this->translator = $translator;
Julien Jorry committed
24 25 26 27 28 29 30 31
    }

    /**
     * @Route("/userinfos", name="user_infos")
     * @IsGranted("ROLE_USER")
     */
    public function userInfosAction(Request $request)
    {
32
        $form = $this->createForm(UserInfosFormType::class, $this->getUser());
Julien Jorry committed
33 34 35 36 37 38 39
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $this->em->persist($form->getData());
            $this->em->flush();
            $this->addFlash(
                'success',
40
                $this->translator->trans("Infos de l'utilisateur modifiée !")
Julien Jorry committed
41 42 43 44 45 46 47 48 49 50 51 52 53 54
            );
            $referer = $request->headers->get('referer');
            if ($referer && !$request->isXmlHttpRequest()) {
                return $this->redirect($referer);
            } elseif (!$request->isXmlHttpRequest()) {
                return new Response('', Response::HTTP_BAD_REQUEST);
            }
        }
        return $this->redirectToRoute('index');
        // return $this->render('presta/infos.html.twig', array(
        //     'form' => $form->createView()
        // ));
    }
}