我的模型關係如下:CakePHP的2.1 - 保存(和創造)多加入模型和相關模型
Student hasMany ClassStudent
Class hasMany ClassStudent
ClassStudent belongsTo Student
ClassStudent belongsTo Class
ClassStudent is a join model.
我想要做的就是創建學生(S),使用現有的類或創建新的,並創建一個鏈接學生和課程的連接模型記錄。
我想在一次調用中完成這一切保存(如果這是可能的話)。
我曾嘗試:
$data = array(
'Student' => array(
'0' => array(...), // Data in here
'1' => array(...),
...,
'n' => array(...)
),
'Class' => array(
'class_id' => x // The class that I want the above students to be associated with
)
)
我想要做的就是創建學生的N個記錄,並將它們添加到一個類(可能在如果用戶想添加一個新的同時創建一個類一)。我還希望在創建學生記錄時爲每個學生創建一個連接模型記錄。
這可能嗎?我正在使用Cake 2.1.0(今天的穩定版本),並且我用$ options ['deep'] = true嘗試了不同類型的saveAll(saveAssociated和saveMany)。
有沒有可能我的數據數組的格式不正確?
編輯: 我也曾嘗試:
$data = array(
'ClassStudent' => array(
'0' => array(
'Student' => array (...), // Data
'Class' => array(id => x) // The id of the Class the Student should be associated to
...,
'n' => array(
'Student' => array(...), // n-th Student
'Class' => array(id => x)
)
);
$this->saveAll($data['ClassStudent'], array('deep' => true));
在上述情況下,成功地創造了學生表中的新學生檔案,但在連接表中創建什麼。
嘿瑞恩,感謝您的答覆。我確實使用了鏈接的方法來一次保存一個連接模型,並且工作正常。但在那種情況下,我只做一個。 因此,不可能一次創建多個連接模型? – user1251202 2012-03-06 04:53:32
這實際上看起來更有趣。在閱讀更多內容之後,似乎Cake文檔可能會造成一些混淆。截至目前,似乎你只能保存一組關聯的時間,在ClassStudent模型上調用saveAll – 2012-03-06 07:00:57
Hey Ryan,我試過上面的數據格式,它似乎沒有工作。至於我的保存呼叫,不知道它是否重要,但在我的ClassStudent模型中,我有調用$ this-> saveAll($ data,array('deep'=> true))的函數(我曾嘗試過並沒有深)。然後在我的類控制器中,我調用方法爲$ this-> Class-> ClassStudent-> saveClassStudents($ this-> request-> data)。 請注意,當我檢查數據庫時,沒有新的記錄。 – user1251202 2012-03-06 17:48:03