CakePHP 的 HasMany 自動存檔...

Posted on 2006-09-13 17:39:01 by darkhero

剛剛跟 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@]

Tags: CakePHP

加入書籤: 收藏這篇文章到HEMiDEMi

迴響

Post By PHP+MySQL at 2006-10-02 20:06:19

你好:


請問目前有無接PHP+MySQL外包案?


如有興趣,歡迎隨時與我聯繫!!


我要留言!

壹 加 肆 等於