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 :

compréhension d'un code donné [3.x]


Sujet :

Symfony PHP

  1. #1
    Membre éprouvé Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut compréhension d'un code donné
    Bonjour ,

    Je me suis mis à symfony récemment, je suivais donc un petit tuto, et il y a une chose qui fonctionne mais je ne comprends pas pourquoi...

    je vous mets le code avant tout.

    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
    public function addAction(Request $request)
        {
            //we create a new form to add a user (parent)
            $user = new User();
     
            $formBuilder = $this->get('form.factory')->createBuilder(FormType::class, $user);
     
            $formBuilder
                ->add('firstName',      TextType::class)
                ->add('lastName',      TextType::class)
                ->add('login',      TextType::class)
                ->add('password',      PasswordType::class)
                ->add('birthDate',      DateType::class)
                ->add('homeCityLocation',     TextType::class)
                ->add('homeStreetLocation',   TextType::class)
                ->add('mail',    EmailType::class)
                ->add('phoneNumber', TextType::class)
                ->add('active', CheckboxType::class, array('required' => false))
                ->add('save',      SubmitType::class)
            ;
     
            $form = $formBuilder->getForm();
     
            //if the form is sent and is valid, we flush the user (parent)
            if ($request->isMethod('POST')) {
     
                $form->handleRequest($request);
     
                if ($form->isValid()) {
     
                    $em = $this->getDoctrine()->getManager();
                    $em->persist($user);
                    $em->flush();
     
                    $request->getSession()->getFlashBag()->add('notice', 'Utilisateur bien enregistrée.');
     
                    return $this->redirectToRoute('user_view');
                }
            }
     
            return $this->render('BaseBundle:user:add.html.twig', array(
                'form' => $form->createView(),
            ));
     
        }
    Alors je me demandais pourquoi ce code fonctionne, étant donné que je crée d'abord un objet $user vierge. Ensuite je crée un formulaire, et ensuite seulement je vérifie si mon formulaire n'a pas déja été envoyé et là je traite mon objet $user qui m'est envoyé par mon formulaire. du coup pourquoi ma variable user n'est pas initialisé avant d'aller en base de donnée et que j'ai bien ma variable de mon formulaire ?

    Merci.

    Jisig.

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    hello panda,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            $formBuilder = $this->get('form.factory')->createBuilder(FormType::class, $user);
    Cela veut dire que ton formulaire est relié à l'entité $user (qui est vide)
    si il y avait des choses dedans, ton formulaire aurait été initialisé avec les valeurs correspondantes.

    de plus, avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
              $form->handleRequest($request);
    cela va récupérer les données de la requête et les mettre dans l'entité du formBuilder c.a.d de l'entité $user (qui va servir juste après à l'enregistrement en base)

  3. #3
    Membre éprouvé Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut Thank you
    Merci pour l'explication, bien compris.

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

Discussions similaires

  1. compréhension d'un code
    Par alsimbad dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/05/2008, 06h52
  2. [ARM7] Aide pour la compréhension d'un code
    Par hack-77 dans le forum Autres architectures
    Réponses: 6
    Dernier message: 25/03/2008, 20h34
  3. comment tester le code donné dans l'aide de vb2005
    Par programaniac dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/03/2008, 18h04
  4. Compréhension d'un code
    Par maxlegrand dans le forum Langage
    Réponses: 1
    Dernier message: 12/11/2007, 09h47
  5. Réponses: 10
    Dernier message: 11/04/2007, 11h14

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