Bonjour,

Je travaille sur une base DB2 qui contient une table candidats et donc, dans mon projet, j'ai une entité candidats sur laquelle j'ai créé un formulaire. Dans mon controller, ça donne ça :

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
    $candidat=new Candidats();
    $em=$this->getDoctrine()->getEntityManager();
    $form=$this->createForm(new CandidatType($em), $candidat);
    
    $request=$this->get('request');
    if ($request->getMethod() =='POST') {
        $form->bindRequest($request);
    
        if ($form->isValid()) {
           $em->persist($candidat);
           $em->flush();
            return $this->redirect($this->generateUrl('ListeCandidats'));
        }
    }
    
    return $this->render('AshBundle:Candidats:ajout.html.twig',array('form' => $form->createView(),'tabs'=>$tabs));
Tout se passe bien jusqu'à la ligne 11 : la ligne n'est pas créé dans la table, et j'arrive sur une page blanche.

J'ai vérifié, en faisant ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
        $conn=$this->get('doctrine.dbal.ash_connection');
        $conn->insert('candidats',array('NOM_USUEL' => $candidat->getNomUsuel()));
que $candidat contenait bien tout ce qu'il fallait : c'est donc le flush qui pose problème. Dans les traces DB2 que j'ai pu voir, la commande INSERT est bien envoyée, mais j'ai l'impression que les paramètres ne sont pas "bindés" dans l'envoi.

Comment pourrais-je tracer la commande flush et être sur qu'elle envoie bien les données persistées (dont je suis sûr qu'elles existent) ?

Merci d'avance pour toute piste de recherche.