2012-04-05 26 views
0

我有一個教條的問題。 我有文件管理器和文件夾。學說 - 遞歸保存不與工作原理

現在我想將組保存到一個目錄或單個文件。 對於單個項目它的作品。

但是,如果我想保存組權利遞歸它不會工作。 學說不會拋出錯誤或異常。但它不會保存子目錄中的子目錄和文件。

這是我的模型:

http://pastebin.com/nK6MqiiS

這兩款機型Model_File_Item和Model_File_Dir擴展這個模型。 一切正常,直到方法「setGroupsRecursive()」想要將組保存到目錄或文件。

我寫了文件記錄..一切都很好,每一個項目將被保存,但變化不會被保存在數據庫中,我不知道爲什麼。

編輯:組定義是這樣的:

Model_File_Dir & Model_File_Item:

/** 
* Owning Side 
* 
* @ManyToMany(targetEntity="Model_Group", inversedBy="dirs") 
* @JoinTable(name="dir_groups", 
*  joinColumns={@JoinColumn(name="dir_id", referencedColumnName="id")}, 
*  inverseJoinColumns={@JoinColumn(name="group_id", referencedColumnName="id")} 
*  ) 
*/ 
protected $groups; 

和Model_Group看起來是這樣的:

/** 
* @ManyToMany(targetEntity="Model_File_Dir", mappedBy="groups") 
*/ 
protected $dirs; 

/** 
* @ManyToMany(targetEntity="Model_File_Item", mappedBy="groups") 
*/ 
protected $files; 

回答

0

要在數據庫中保存的東西教條你需要使用entitymanager刷新它。 還記得在關係中你需要刷新關係的擁有方,否則改變將被忽略。

Check it!