Doctrine2 ManyToMany-relation无法保存

时间:2012-10-08 10:17:05

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

我在doctrine2中遇到了ManyToMany关系问题。即使存在关系,关系也不会持续存在。如果我检查两个foreach循环中的持久性,则返回正确的对象。

第一堂课是文件。

class Document extends BaseEntity
{
    ....
    /**
     * @ORM\ManyToMany(targetEntity="Job", mappedBy="documents", cascade={"all"})
     * @ORM\JoinTable(name="job_document")
     */
     protected $jobs;
    ....

第二类是Job

class Job extends BaseEntity
{
    ....
    /**
     * @ORM\ManyToMany(targetEntity="Document", inversedBy="jobs", cascade={"all"})
     * @ORM\JoinTable(name="job_document")
     */
    protected $documents;
    ....

在我的控制器中,我执行以下操作:

$job->addDocument($document);
$document->addJob($job);
$em->persist($job);
$em->flush();

添加功能正常。当我执行此操作时,我可以看到它。

1 个答案:

答案 0 :(得分:0)

在我看来,你只是试图更新反面,而不是关系的拥有方。

正如doctrine documentation中指出的那样:

  

忽略仅对关联的反面进行的更改。   确保更新双向关联的两侧(或在   至少是拥有方,从学说的角度来看)