繁体   English   中英

Doctrine2 ManyToMany关系不保存

[英]Doctrine2 ManyToMany-relation doesn't save

我对doctrine2中的ManyToMany关系有疑问。 即使存在关系,该关系也不会持久。 如果我再次检查仍然存在于两个foreach循环中,则返回正确的对象。

第一类是文档。

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

第二类是乔布

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();

添加功能可以正常工作。 当我再次遍历对象时,我可以看到它。

在我看来,您仅尝试更新关系的相反方面,而不是关系的拥有方面。

原则文件中所指出:

仅对关联的反面所做的更改将被忽略。 确保更新双向关联的双方(或者从Doctrine的角度来看至少更新拥有方)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM