CakePHP 的 HasMany 自動存檔...
剛剛跟 thegiive 聊天的時候,他問了我一個CakePHP的問題。
CakePHP 的 model 能自動 save hasMany 的 entry 嗎?
經過測試後發現似乎沒有辦法。
不過還是可以經由修改 model 做到類似的功能。
在所建立的 model 中加入一個 function , afterSave ,afterSave 是 Model 的 CallBack Function ...
在save後會自動被呼叫。
寫入類似下列的 內容,假設我是 hasmany 一個 Post 的 model ...
function afterSave(){
if ($user_id = $this->getLastInsertID()){
foreach ($this->data['Post'] as $val){
$this->Post->create();
$data['Post'] = $val;
$data['Post']['user_id'] = $user_id;
$this->Post->save($data);
unset($data);
}
}
}
這樣子在存檔的時候,只要輸入的資料是類似這樣...
date => Array
(
[User] => Array
(
[name] => Darkhero
[email] => darkhero@gmail.com
)
[Post] => Array
(
[0] => Array
(
[title] => test1
[content] => content1
)
[1] => Array
(
[title] => test2
[content] => content2
)
[2] => Array
(
[title] => test3
[content] => content3
)
)
)
--
去 cakephp 的 irc 問了才知道有 model::create 初始化一個物件,所以重新改一下程式碼...[@more@]






迴響
你好:
請問目前有無接PHP+MySQL外包案?
如有興趣,歡迎隨時與我聯繫!!