1

我在学说 2 中的多对多关系有问题。即使关系存在,关系也不会持续存在。如果我检查两个 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();

添加功能工作正常。执行此操作后,当我遍历对象时,我可以看到它。

4

1 回答 1

0

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

正如教义文档中指出的那样:

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

于 2012-10-08T11:09:08.623 回答