Bonjour à tous,
J'ai un formulaire avec imbriqué dans un autre (une collection de formulaire pour être exacte). Le rendu dans ma page est un tableau avec pour chaque ligne un objet de ma collection.
Le controller:
Mon twig utilise une DataTable qui va paginer le résultat. Or mon soucis est lors de la soumission du formulaire, les données soumises ne sont que celles affichées, celles dans les autres pages ne sont pas soumises et une erreur apparaît:
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 $mesDonnees= $em->getRepository('MonBundle:MaClasse')->getMaDonnee($parametre); $listeMaClasse = new ListeMaClasse(); $listeMaClasse ->setMaCollection ($mesDonnees); $form = $this->createForm(new ListeMaClasseType($param),$listeMaClasse ); if ($request->isMethod('POST')) { $form->bind($request); if ($form->isValid()) { foreach($mesDonnees as $donnee) $donnee->setModificateur($currentUser); $em->flush(); return $this->redirect($this->generateUrl('ma_route')); } }
Je pense que le souci vient duContextErrorException: Catchable Fatal Error: Argument 1 passed to MonProjet\MonBundle\Entity\MaClasse::setStatut() must be an instance of Intranet\MonBundle\Entity\Statut, null given,...car il met les valeurs retournées pour chaque objet de ma Collection, mais comme je ne soumet pas toutes les infos, il met null là où il n'y a rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $form->bind($request);
J'ai essayé de modifier le formulaire avec un even POST_SUBMIT, pour enlever du formulaire les objets de ma Collection qui ne sont pas soumis mais le problème ne change pas.
Quelqu'un aurait-il une idée ou une piste à explorer ?
Merci d'avance !
Partager