2012-10-17 72 views
0

我在Post和User之間有一個名爲「訂閱」的hasAndBelongsToMany關係。 (而不是posts_users)它包含user_id和post_id。更新記錄時丟失hasAndBelongsToMany關係中的數據

我有它的工作,但是當我更新郵政模型的字段,然後記錄從訂閱表中刪除。這是爲什麼發生?

更新是這個(在我的Post模型):

public function markAsRead(){  
    $this->read(null, $this->id); 
    $this->set('user_read', 1); 

    return $this->save(); 
} 

感謝。

回答

-2

請檢查在線documentation,因爲我懷疑你可能做錯了方式?

+0

我想我以正確的方式做到了。這就是CakePHP文檔所說的:「在保存HasAndBelongsToMany關係時,默認情況下,Cake會刪除連接表中的所有行,例如,如果您有一個關聯了10個孩子的俱樂部,那麼您將Club更新爲2兒童俱樂部將只有2個孩子,而不是12個。「 所以......我終於把它變成了兩個BelongsTo和一個hashMany。 – Alvaro

+0

確實如此,但我認爲您必須確保連接表上的原始行位於您嘗試保存的同一組數據中。例如先讀取行,追加新行,然後保存 –

+0

我明白你的意思了。無論如何,我發現創建其他類型的關係更簡單。不管怎麼說,還是要謝謝你。 – Alvaro