OneToMany Bi-directionnelle Bug d'insertion
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:
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:
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:
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.