我有用戶,我有課程。我正在嘗試爲用戶創建一個「加入」按鈕,以便他們查看課程列表以訂閱課程。在CakePHP中關聯對象
我被告知使用
class Course extends AppModel
{
public $hasAndBelongsToMany = array('User');
}
和
class User extends AppModel
{
public $hasAndBelongsToMany = array('Course');
}
但我不知道如何實現實際的按鈕和信息,以表的發佈稱爲courses_users
我在哪裏實施?
在此先感謝!
CakePHP會根據約定優於配置的原則,當你有場模型和用戶模型之間的HABTM關係,它假定有一個courses_users表在你的數據庫並在保存相關的用戶會寫信給它自動地當然,即使被調用的函數是$ this-> Course-> saveAll()(它保存了相關的數據)。 – Chris
@Chris這實際上是完美的 - 除了當另一個用戶註冊同一個課程時,它使用新的用戶名寫入文件,儘管這兩個對象都有一個$ hasAndBelongsToMany。你知道爲什麼會發生這種情況嗎? – itamar
保存HABTM數據的CakePHP的默認行爲是刪除關聯到一個保存,然後從數據創建的那些(作爲唯一的選項中的鏈接解釋如下)中的所有記錄:HTTP://book.cakephp。 org/2.0/en/models/associations-linking-models-together.html#hasandbelongstomany-habtm,解決方案是使用'unique'=> keepExisting聲明您的habtm關係。 – Chris