Bonjour à tous, cela fait 24h que je m'arrache les cheveux sur un bug de ma relation bi-directionnelle.

Tout d'abord les entitées concernées:

La classe Js qui représente une journée de travail.
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
 
class Js
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
 
    /**
     * @ORM\OneToMany(targetEntity="Fi\ServiceBundle\Entity\Pause", mappedBy="js")
     */
    private $pause;
 
    /*...*/
La classe Pause qui représente une pause, une journée de travail peut avoir plusieurs pause.
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
 
class Pause
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
 
     /**
      * @ORM\ManyToOne(targetEntity="Fi\ServiceBundle\Entity\Js", inversedBy="pause")
      * @ORM\JoinColumn(name="js_id", referencedColumnName="id")
      */
    private $js;
Le controller:
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
 
$js = new Js();
		$form = $this->createForm(new JsType(), $js);
 
		$user = $this->container->get('security.context')->getToken()->getUser();
 
		$request = $this->get('request');
		if ($request->getMethod() == 'POST')
		{
			$form->bindRequest($request);
			if ($form->isValid()) 
			{
				$js = $form->getData(); 
				$js->setUser($user);
 
				$em = $this->getDoctrine()->getEntityManager();
				foreach ($js->getPause() as $pause)
				{
					$em->persist($pause);
				}
				$em->persist($js);
				$em->flush();
                        }
                   }
Mon problème, quand je valide mon formulaire, tout fonctionne, les données sont bien enregistrées SAUF le js_id (id de la js dans la table pause) qui lui reste à NULL. J'ai éplucher la doc durant des heures, parcouru des kilomètres de forum, je ne vois pas mon erreur, mon code semble correct.

J'ai besoin de votre aide, merci.