IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Personnalisaion du ProfileController de fosuserbundle


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Par défaut Personnalisaion du ProfileController de fosuserbundle
    voici mon controller
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    public function editAction(Request $request)
        {
            $user = $this->getUser();
            if (!is_object($user) || !$user instanceof UserInterface) {
                throw new AccessDeniedException('This user does not have access to this section.');
            }
     
            /** @var $dispatcher EventDispatcherInterface */
            $dispatcher = $this->get('event_dispatcher');
     
            $event = new GetResponseUserEvent($user, $request);
            $dispatcher->dispatch(FOSUserEvents::PROFILE_EDIT_INITIALIZE, $event);
     
            if (null !== $event->getResponse()) {
                return $event->getResponse();
            }
     
            /** @var $formFactory FactoryInterface */
            ///$formFactory = $this->get('fos_user.profile.form.factory');
     
            //$form = $formFactory->createForm();
           // $form->setData($user);
     
            $form = $this->createForm('UtilisateurBundle\Form\CompteUserType' , $user);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
                /** @var $userManager UserManagerInterface */
                $userManager = $this->get('fos_user.user_manager');
     
                $event = new FormEvent($form, $request);
                $dispatcher->dispatch(FOSUserEvents::PROFILE_EDIT_SUCCESS, $event);
     
                $userManager->updateUser($user);
     
                if (null === $response = $event->getResponse()) {
                    //$url = $this->generateUrl('fos_user_profile_show');
                    $response = $this->showAction();
                }
     
                $dispatcher->dispatch(FOSUserEvents::PROFILE_EDIT_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
     
                return $response;
            }
     
            return $this->render('@FOSUser/Profile/edit.html.twig', array(
                'form' => $form->createView(),
            ));
        }
    et voici comment je soumets mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $j('#user_edit_form').on('submit' , function (event) {
                    event.preventDefault();
                    var form = $j(this);
     
                    $j.ajax({
                        type: 'POST',
                        url: Routing.generate('fos_user_profile_edit'),
                        data: form.serialize(),
                        dataType: 'html'
                    }).done(function (data) {
                        $j('#sygeispom').html(data);
                    });
                });
    lorsque je copie l'url et je passe au navigateur tout marche bien par contre lorsque je passe par la requette ajax alors il me retourne toujour le formulaire de modiication sans aucune modification biensur.

    Alors j'aimerai qu'on m'aide car le profiler ne signale aucune erreur. C'est ma 1ere utilisation de symfony et j'utilise la version 3.2.6 . merci d'avance pour vos eventuels apports.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    Bonjour,
    on est déja sur que l'event submit est lancé ?
    que l'appel ajax est lancé ?
    si toujours oui alors la form peut etre invalide .

    le code a l'air correct .

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Par défaut
    Citation Envoyé par MehrezLabidi Voir le message
    Bonjour,
    on est déja sur que l'event submit est lancé ?
    que l'appel ajax est lancé ?
    si toujours oui alors la form peut etre invalide .

    le code a l'air correct .
    Oui je me suis rassurer qu'a ce niveau il n'ya pas de probleme,maintenant si le formulaire est invalide je ne sais si sa un rapport avec ce dernier en terme de vue.Neamoins je vous le passe si sa peut servir

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <div class="container-fluid row-fluid ">
            {{ form_start(form,  {'attr': {'id':'user_edit_form'}}) }}
     
         <div class="row">
     
            <div class="row">
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_label(form.username) }}</div>
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_widget(form.username) }}</div>
            </div>
     
            <div class="row">
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_label(form.email) }}</div>
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_widget(form.email) }}</div>
            </div>
     
            <div class="row ">
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_label(form.fonction) }}</div>
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_widget(form.fonction) }}</div>
            </div>
     
         </div>
     
         <div class="row">
     
             <div class="row">
                 <div class="col-lg-6 col-md-6 col-sm-6"><label for="actual">Mot de passe actuel</label></div>
                 <div class="col-lg-6 col-md-6 col-sm-6"><input id="actual" name="actual" type="password" class="form-control" placeholder="Mot de passe actuel">    </div>
             </div>
     
            <div class="row">
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_label(form.plainPassword.first) }}</div>
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_widget(form.plainPassword.first) }}</div>
            </div>
     
            <div class="row">
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_label(form.plainPassword.second) }}</div>
                <div class="col-lg-6 col-md-6 col-sm-6">{{ form_widget(form.plainPassword.second) }}</div>
            </div>
     
         </div>
     
        <div class="row-fluid pull-right form-body">
            <button type="button" class="btn btn-default" id="quit" >Quitter</button>
            <button type="button" class="btn btn-default " id="reset">Réinitialiser</button>
            <input type="submit" class="btn btn-default" id="edit_submit" value="Modifier"/>
        </div>
     
    </div>
    {{ form_end(form) }}
    </div>

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    voila un exemple https://intelligentbee.com/blog/2015...orms-and-ajax/ .
    la requete doit est isXmlHttpRequest et sa route exposable=true ..

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Par défaut
    Citation Envoyé par MehrezLabidi Voir le message
    voila un exemple https://intelligentbee.com/blog/2015...orms-and-ajax/ .
    la requete doit est isXmlHttpRequest et sa route exposable=true ..


    J'ai essayé le isXmlHttpRequest mais rien,seulement je ne sais comment mettre le exposable=true a la route fos_user_profile_edit,puisse-je avoir une idée?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] [FOSUserBundle] Personnaliser les champs de la table User
    Par Dinduks dans le forum Symfony
    Réponses: 4
    Dernier message: 11/07/2012, 16h25
  2. [2.x] [FOSUserBundle] Comment s'en servir ?
    Par Bleys dans le forum Symfony
    Réponses: 31
    Dernier message: 15/09/2011, 01h21
  3. [2.x] [FOSUserBundle] Utilité des groupes
    Par dourouc05 dans le forum Symfony
    Réponses: 7
    Dernier message: 15/08/2011, 11h32
  4. Réponses: 0
    Dernier message: 04/08/2011, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo