Bonjour,
Voila j'ai 4 entity A,B,C,D chaqu'une d'entre elle est en relation avec sa voisine (ManyToOne partant de D vers A) et la relation est bidrectionel donc j'ai :
D ManyToOne C ManyToOne B ManyToOne A et bien sur A OneToMany B OneToManyC OneToMany D
Eample du code (et c'est la meme chose pour les autre entité ):
class A
{
/**
* @ORM\OneToMany(targetEntity="PlatformBundle\Entity\B", mappedBy="A", cascade={"persist"})
*/
private $B;
public function __construct()
{
$this->specialiteSemestres = new \Doctrine\Common\Collections\ArrayCollection();
}
public function addB(\PlatformBundle\Entity\B $B)
{
$this->B[] = $B;
$B->setA($this);
return $this;
}
public function removeB(\PlatformBundle\Entity\B $B)
{
$this->B->removeElement($B);
}
public function getB()
{
return $this->B;
}
}
Voila le formBuilder de A:
$builder
->add('B', 'collection', array(
'allow_add' => true,
'allow_delete' => true,
'type' => new BType(),
'by_reference' => false
))
->add('Ajouter', 'submit')
;
et mon controlleur est simple :
$A = new A();
$form = $this->createForm(new AType, $A);
if($form->handleRequest($request)->isValid()){
$manager = $this->getDoctrine()->getManager();
$manager->persist($A);
$manager->flush();
}
return $this->render('PlatformBundle:A:index.html.twig', array('form' => $form->createView()));
Alors lors de la creation d'une nouvelle entity les entités sont bien persister
par contre lors de la mise a jour d'une entite que je recupere avec le Repository bin je remaque que lorsque le formulaire hydrate mon objet bin ce dernier ne change pas bien que les methode add et remove sont bien appeler
Merci d'avance pour votre aide