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 :
Tout se passe bien jusqu'à la ligne 11 : la ligne n'est pas créé dans la table, et j'arrive sur une page blanche.
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));
J'ai vérifié, en faisant ça :
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.
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()));
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.
Partager