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.