Symfony2-Doctrine:ManyToMany双向关系

时间:2012-08-08 16:00:56

标签: orm symfony doctrine-orm many-to-many

我已经搜索了很多befors,甚至是相关话题Symfony2-Doctrine: ManyToMany relation is not saved to database 但仍然没有答案。

我有两个班:

class Intervenant extends User
{

/**
 * @ManyToMany(targetEntity="iMDEO\DISAASBundle\Entity\Domaine", inversedBy="intervenants", cascade={"persist","merge"})
 */
private $domaines;


/**
 * Add domaines
 *
 * @param Domaine $domaines
 */
public function addDomaine(Domaine $domaines)
{

    $this->domaines[] = $domaines;
}

/**
 * Get domaines
 *
 * @return Doctrine\Common\Collections\Collection 
 */
public function getDomaines()
{
    return $this->domaines;
}
}
class Domaine
{
// ...
/**
 * @ORM\ManyToMany(targetEntity="Intervenant", mappedBy="domaines", cascade={"persist","merge"})
 * 
 */
private $intervenants;

/**
 * Add intervenants
 *
 * @param Intervenant $intervenants
 */
public function addIntervenant(Intervenant $intervenants)
{

    $intervenants->addDomaine($this);
    $this->intervenants[] = $intervenants;
}

/**
 * Get intervenants
 *
 * @return Doctrine\Common\Collections\Collection 
 */
public function getIntervenants()
{
    return $this->intervenants;
}
}

当我保存Intervenant时,一切正常。 但是当我保存反面Domaine时,更改不会保留。

在任何地方阅读Symfony的文档和主题,我找不到任何解决方案来获得我的两个实体之间的双向关系。

这是DomaineController的一部分:

$em = $this->getDoctrine()->getEntityManager();
$entity = $em->getRepository('myBundle:Domaine')->find($id);
if (!$entity) {
    throw $this->createNotFoundException('Unable to find Domaine entity.');
}
$editForm   = $this->createForm(new DomaineType(), $entity);
$deleteForm = $this->createDeleteForm($id);
$request = $this->getRequest();
$editForm->bindRequest($request);

if ($editForm->isValid()) {
   $em->persist($entity);
   $em->flush();
   return $this->indexAction();
}

// ...

我的目的是在创建/编辑Intervenant时,我可以选择相关的Domaine。 当我创建/编辑Domaine时,我会链接其中的每个Intervenant

你能帮我吗?

0 个答案:

没有答案