Bonjour,
J'ai commencé voila 3 ou 4 mois à utiliser symfony 2, et assez vite j'ai utilisé FOSUserBundle.
J'ai créé un Bundle UtilisateurBundle qui me permet de définir mon propre code... pour certaines choses.
Il a bien dans getParent() le lien vers FosUserBundle.
Ma classe User n'est que dans ce Bundle, pas dans mon site principal.
Mon problème, c'est qu'aujourd'hui, j'ajoute dans mon dossier UtilisateurBundle\Controller un fichier ProfileController.php, copié depuis FOSUser Bundle et qui contient maintenant :
Et celui ci n'est pas pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <?php namespace JaiUneIdee\UtilisateurBundle\Controller; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\Security\Core\Exception\AccessDeniedException; use FOS\UserBundle\Controller\ProfileController as BaseController; class ProfileController extends BaseController { /** * Edit the user */ public function editAction() { exit(); $user = $this->container->get('security.context')->getToken()->getUser(); if (!is_object($user) || !$user instanceof UserInterface) { throw new AccessDeniedException('This user does not have access to this section.'); } $form = $this->container->get('fos_user.profile.form'); $formHandler = $this->container->get('fos_user.profile.form.handler'); $process = $formHandler->process($user); if ($process) { $user->upload(); $this->setFlash('fos_user_success', 'profile.flash.updated'); return new RedirectResponse($this->container->get('router')->generate('fos_user_profile_show')); } return $this->container->get('templating')->renderResponse( 'FOSUserBundle:Profile:edit.html.'.$this->container->getParameter('fos_user.template.engine'), array('form' => $form->createView(), 'theme' => $this->container->getParameter('fos_user.template.theme')) ); } }
Est ce que vous sauriez pourquoi ?
J'avoue que je ne comprends pas pourquoi mes formulaires sont pris en compte, mes champs supplémentaires sont pris en compte, mes traductions sont pris en compte, mais pas les controllers.
J'ai vu quelqu'un dire que l'on devait avoir une classe User dans le site principal, qui étendait celle de UtilisateurBundle qui lui même etendait celle de FOSUserBundle... Est-ce vrai ?
Ca représente pas mal de modification dans mon code pour arriver à ce résultat, donc j'aimerais avoir plus de précisions avant de me lancer la dedans.
Si quelqu'un a une idée de ce qui pourrait bloquer, j'avoue que je me suis arraché pas mal de cheveux sur ce Bundle depuis que je l'utilise, sans jamais rien y comprendre globalement.
Merci,
Pierre
Partager