1

doctrine2 の ManyToMany 関係に問題があります。関係は存在しますが、関係は持続しません。2 つの foreach ループで永続化を確認すると、正しいオブジェクトが返されます。

最初のクラスはドキュメントです。

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

2番目のクラスはヨブです

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 に答える