2012-10-08 173 views
0

我在教條2中的ManyToMany關係有問題。即使關係存在,關係也不會持續。如果我檢查了兩個foreach循環中是否存在,則返回正確的對象。Doctrine2 ManyToMany-關係不保存

第一類是Document。

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

的附加功能,做工精細。當我這樣做時,我可以看到它,當我循環對象時。

+0

你有沒有設法得到這個工作? – pagliuca

回答

0

在我看來,你只是試圖更新反面而不是關係的擁有方。

doctrine documentation指出:

只向一個關聯的反向側將被忽略的變化。 請務必更新雙向關聯的雙方(在 至少擁有方或從教義的角度來看)

+0

上面的一些行我有: $ em-> persist($ document); – Pino

+0

@Pino但是您必須在添加作業後保留文檔。 – k0pernikus

+0

我不認爲你必須這樣做,但我試過了。同樣的結果。關係不會被保存,兩個實體都是。 – Pino

相關問題