C'est la toute ma question- as-tu vraiment besoin du champs hidden "course_id" ? Tu en fait quoi, tu t'en sers ou ?
$courseId = $form->get('course_id')->getData();
$course = $this->getCourseRepository()->find($courseId);
$entity->setCourse($course);
C'est là que je ne comprends comment je peux me passer de cette information dans le formulaire, vu que dans le createAction je crée une instance de ClassSession vide avant de binder mon formulaire avec la requête, si je ne transmets pas cet ID dans le formulaire, je ne sais pas comment récupérer cette info. Est-ce qu'il y a un moyen de conserver l'objet ClassSession initialisé dans le newAction (avant sousmission du formulaire) ? /**
* Creates a new ClassSession entity.
*
* @Route("/create", name="classsession_create")
* @Method("POST")
* @Template("VirguleMainBundle:ClassSession:new.html.twig")
*/
public function createAction(Request $request) {
$entity = new ClassSession(); // ==============================> Ici je réceptionne le formulaire, et j'ai besoin d'un objet ClassSession pour le "createForm". Donc j'en crée un nouveau et donc l'attribut "course" vaut null. Est-il possible ici de réutiliser l'objet ClassSession qui a été initialisé avec le bon cours dans newAction ?
$organizationBranchId = $this->getSelectedOrganizationBranchId();
$currentTeacher = $this->getConnectedUser();
$form = $this->createForm(new ClassSessionType($this->getDoctrine(), $organizationBranchId, $currentTeacher), $entity, array(
'em' => $this->getDoctrine()->getManager(),
));
C'est dans l'appel de la méthode "createNamed", tu avais mis ça :- pas bien compris ton histoire de ArrayCollection ?
$form->add($this->factory->createNamed('classSessionStudents', 'entity', $data['courseId'], array(
C'est l'utilisation du $data['courseId'] qui posait problème, de ce que j'ai compris comme j'ai une relation ManyToMany cet champ là attend une collection si tu lui passes des données. Finalement en lisant la doc de l'API j'ai compris que je n'avais pas besoin de ce paramètre, j'ai donc passé une ArrayCollection vide, dans ton dernier exemple tu as mis null, je pense que ça revient au même.Merci pour ton aide en tout cas